Visual Basic Excel - 尝试根据计数器复制单元格
Visual Basic Excel - Trying to copy cells based on a counter
所以我有一个 A 列,如果需要,可以在其中从 143 到 179 的单元格中填充数据。该循环从 A 中获取数据并删除未填充的单元格以摆脱所有 spaces(除了格式化所需的一些列出的单元格)并将它们放入列 C.
所以,问题是脚本从 143 复制到 179,即使只填充了 4 个单元格,当复制到我们的系统时看起来很奇怪,因为有一个巨大的 space。有没有办法让它只 copies/selects 填写的内容,ex C143:"C"&counter ?
For i = 143 To 179
If i = 163 Or i = 165 Or i = 174 Then counter = counter + 1
If Cells(i, 1).Value <> "" Then
Cells(counter + 143, 3).Value = Cells(i, 1).Value
counter = counter + 1
End If
Next i
Range("C143:C179").Select
Selection.Copy
将值设置为变量。像这样:
For i = 143 To 179
If i = 163 Or i = 165 Or i = 174 Then counter = counter + 1
If Cells(i, 1).Value <> "" Then
Cells(counter + 143, 3).Value = Cells(i, 1).Value
counter = counter + 1
End If
Next i
lastrow1 = Cells(Rows.Count, "A").End(xlUp).Row
Range("C143:C" & lastrow1).Select
Selection.Copy
你的问题有点不清楚,但如果你只想将 A 列中有值的单元格复制到 c 列,从单元格 C1 开始,这可以完成这项工作。我不确定您为什么要跳过某些行,但我已将其注释掉,但是如果您确实需要,可以将其带回代码中。
Sub test()
Dim i As Integer
Dim WS As Worksheet
Set WS = ActiveSheet
counter = 1
For i = 143 To 179
'If i = 163 Or i = 165 Or i = 174 Then counter = counter + 1
If WS.Cells(i, 1).Value <> "" Then
WS.Cells(counter, 3).Value = WS.Cells(i, 1).Value
counter = counter + 1
End If
Next i
WS.Range("C1:C" & counter - 1).Select
Selection.Copy
End Sub
所以我有一个 A 列,如果需要,可以在其中从 143 到 179 的单元格中填充数据。该循环从 A 中获取数据并删除未填充的单元格以摆脱所有 spaces(除了格式化所需的一些列出的单元格)并将它们放入列 C.
所以,问题是脚本从 143 复制到 179,即使只填充了 4 个单元格,当复制到我们的系统时看起来很奇怪,因为有一个巨大的 space。有没有办法让它只 copies/selects 填写的内容,ex C143:"C"&counter ?
For i = 143 To 179
If i = 163 Or i = 165 Or i = 174 Then counter = counter + 1
If Cells(i, 1).Value <> "" Then
Cells(counter + 143, 3).Value = Cells(i, 1).Value
counter = counter + 1
End If
Next i
Range("C143:C179").Select
Selection.Copy
将值设置为变量。像这样:
For i = 143 To 179
If i = 163 Or i = 165 Or i = 174 Then counter = counter + 1
If Cells(i, 1).Value <> "" Then
Cells(counter + 143, 3).Value = Cells(i, 1).Value
counter = counter + 1
End If
Next i
lastrow1 = Cells(Rows.Count, "A").End(xlUp).Row
Range("C143:C" & lastrow1).Select
Selection.Copy
你的问题有点不清楚,但如果你只想将 A 列中有值的单元格复制到 c 列,从单元格 C1 开始,这可以完成这项工作。我不确定您为什么要跳过某些行,但我已将其注释掉,但是如果您确实需要,可以将其带回代码中。
Sub test()
Dim i As Integer
Dim WS As Worksheet
Set WS = ActiveSheet
counter = 1
For i = 143 To 179
'If i = 163 Or i = 165 Or i = 174 Then counter = counter + 1
If WS.Cells(i, 1).Value <> "" Then
WS.Cells(counter, 3).Value = WS.Cells(i, 1).Value
counter = counter + 1
End If
Next i
WS.Range("C1:C" & counter - 1).Select
Selection.Copy
End Sub