|
发表于 2012-8-29 13:38
|
显示全部楼层
本楼为最佳答案
本帖最后由 mxg825 于 2012-8-29 15:35 编辑
按代码改动,没测试 自己 看看对不对?
顺便帮你把 显示和隐藏列代码 给优化了!- Option Explicit
- Sub form_file()
- Dim a(1 To 480, 1 To 7) As String
- Dim arr
- Dim i As Integer
- Dim j As Integer
- Dim k As Integer
- Dim m, n, p, q, h As Integer
- Dim r As Integer 'r=row
- Dim c As Integer 'c=column
- Dim StrDate As Date
- Dim strFN As String
- Dim wb As Workbook
- '以下实现赋值给A矩阵,对所有有效数值,以SN和其后第一个数据不为空为判据
- r = 1
- p = 0
- q = 0
- arr = ActiveSheet.UsedRange
- For k = 0 To 9
- For i = 9 To 58
- If ((i - 8) Mod 17) <> 0 Then
- If arr(i, 2 + 11 * k) = "" And arr(i, 3 + 11 * k) = "" Then
- GoTo 100
- If arr(i, 3 + 11 * k) = "s" Or arr(i, 3 + 11 * k) = "S" Then p = p + 1 'p为击穿不良个数
- If arr(i, 2 + 11 * k) = "" And arr(i, 3 + 11 * k) = "排线不良" Then q = q + 1 'q为排线不良个数
- Else
- For j = 1 To 7
- a(r, j) = arr(i, j + 11 * k + 1) '将数值挑选出来并赋值给矩阵a,这是关键
- Next j
- End If
- r = r + 1 'r为合格个数,这里有问题
- End If
- Next i
- Next k
- 100: MsgBox ("良品个数=" & r - 1 & vbCrLf & "击穿个数=" & p & vbCrLf & "排线不良个数=" & q) '& vbCrLf & "其他不良个数=" & q) '"总数=" & r - 1 + p + q & vbCrLf) '&
- ' Open "C:\Documents and Settings\jackyang\桌面\StrFN.xls" For Input As #1
- Set wb = Workbooks.Open("C:\Documents and Settings\jackyang\桌面\StrFN.xls")
- wb.Sheets(1).Range("A1").Resize(UBound(a, 1), UBound(a, 2)) = a '将矩阵存得数据写到excel一个新文件中
- wb.Sheets(1).Range("C:C,F:F").Columns.AutoFit
- wb.Close True
- End Sub
复制代码 |
评分
-
查看全部评分
|