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