2017-03-06 60 views
0

所以我有一列A,其中143到179的單元格可以根據需要填入數據。循環從A中獲取數據,並刪除沒有填充的單元格,除去所有空格(除了格式化所需的一些列表外),並將它們放入C列。Visual Basic Excel - 試圖根據計數器複製單元格

因此,問題在於腳本即使只有4個單元格被填充,複製到我們的系統上時看起來很奇怪,因爲存在巨大的空間。有沒有辦法讓它只是複製/選擇填充內容,例如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 
+1

'Range(「C143:C」&counter).Copy'? – BruceWayne

回答

1

你的問題是有點不清楚,但如果你只是想複製在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 
+0

非常感謝。它用於管理員檢查,像保持不同類型的檢查之間的間隔,純粹是審美。我知道所有非常有趣的。 –

+0

@ J.Macc因爲你是新來的論壇,當你得到你的答案時,答案旁邊有一個複選標記,如果你點擊它將變成綠色,意思是你收到你想要的東西,它實際上會給寫出答案的人;) – Ibo

0

將該值設置爲變量。事情是這樣的:

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 
+1

我很尷尬,我沒有想到這個,謝謝你。 –

+0

沒問題!如果這個答案適合你,我會非常感謝,如果你可以通過點擊左邊的複選標記來接受答案:) –

相關問題