|
发表于 2017-2-10 14:53
|
显示全部楼层
本楼为最佳答案
只要把涉及K列的输出删掉即可。
原代码中引用工作表名改为引用索引或当前工作表。
- Sub 数据转移()
- Dim arr, result1, result2, result3, result4
- Dim k As Long
- Dim x As Long
- Dim i As Long
- Dim cnt As Long
- Dim temp As String
- Dim wb As Workbook
- Application.ScreenUpdating = False
- Set wb = Workbooks.Open(ThisWorkbook.Path & "\登记表")
- k = Cells(Rows.Count, 3).End(xlUp).Row
- arr = wb.Sheets(1).Range("b3:d" & k).Value
- wb.Close 0
- ReDim result1(1 To UBound(arr), 1 To 1)
- ReDim result2(1 To UBound(arr), 1 To 1)
- ReDim result3(1 To UBound(arr), 1 To 1)
- ReDim result4(1 To UBound(arr), 1 To 1)
- For x = 2 To UBound(arr)
- If arr(x, 2) <> "" Then
- Debug.Print arr(x, 2)
- cnt = cnt + 1
- If arr(x, 1) <> "" Then
- result1(cnt, 1) = arr(x, 1)
- temp = arr(x, 3)
- Else:
- result1(cnt, 1) = result1(cnt - 1, 1)
- End If
- result2(cnt, 1) = "'" & temp
- result3(cnt, 1) = arr(x, 2)
- result4(cnt, 1) = "'" & arr(x, 3)
- End If
- Next x
- With ActiveSheet
- .Range("i2").Resize(UBound(arr), 1) = result1
- '.Range("k2").Resize(UBound(arr), 1) = result2
- .Range("m2").Resize(UBound(arr), 1) = result3
- .Range("u2").Resize(UBound(arr), 1) = result4
- End With
- Application.ScreenUpdating = True
- End Sub
复制代码 |
评分
-
查看全部评分
|