Visual Basic Excel – 试图根据计数器复制单元格

所以我有一个列A,其中143到179的单元格可以填入数据,如果需要的话。 循环从A中获取数据,并删除尚未填充的单元格,除去所有空格(除了格式化所需的一些列表外),并将它们放入C列。

所以,问题在于脚本从143复制到179,即使只有4个单元格被填充,在复制到我们的系统时,由于存在巨大的空间,这些单元格看起来很奇怪。 有没有办法让它只是复制/select填充什么,例如C143:“C”和计数器?

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 

你的问题有点不清楚,但是如果你只是想把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 

将该值设置为一个variables。 像这样的东西:

 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