如果您偏移了一列,則您的複製範圍(如果複製整行)將大於粘貼範圍。你不能粘貼16384列到16383,沒有足夠的空間。
如果你不想使用範圍函數,你將不得不復制整行,然後在前面添加一列。
或者您可以在複製粘貼之前將該列添加到源數據,如果需要,在完成時刪除列。
Sub Sample()
Dim sh2 As Worksheet, sh3 As Worksheet
Set sh2 = Worksheets("Sheet1")
Set sh3 = Worksheets("Sheet2")
If distanceValue <= distanceParameter Then
sh2.Rows(i).Copy _
sh3.Rows(i)
End If
sh3.Columns("A").insert
End Sub
OR
Sub Sample()
Dim sh2 As Worksheet, sh3 As Worksheet
Set sh2 = Worksheets("Sheet1")
Set sh3 = Worksheets("Sheet2")
sh2.Columns("A").insert
If distanceValue <= distanceParameter Then
sh2.Rows(i).Copy _
sh3.Rows(i)
End If
'The next line is to return the source data back to the original format remove if not needed
sh2.Columns("A").Delete
End Sub
你最後的選擇和最有活力的將是具有的ListObject /數據表,而不是一個Excel範圍內工作。如果可能的話。
如果你有一個表已經然後,你可以簡單地使用:
Sub Sample()
Dim sh2 As Worksheet, sh3 As Worksheet
Dim rngCurrentRow As Range
Set sh2 = Worksheets("Sheet1")
Set sh3 = Worksheets("Sheet2")
Set rngCurrentRow = sh2.ListObjects("YourTableNameHere").ListRows(i).Range
If distanceValue <= distanceParameter Then
rngCurrentRow.Copy _
sh3.Cells(i, 2)
End If
End Sub
製作範圍到表是很容易的,如果你的數據不包含空格它一樣簡單點擊在第一個單元格你的範圍和按Ctrl+L
然後這將選擇你的範圍,如果你需要增加範圍的大小,因爲它確實包含空格,那麼簡單地改變輸入框來選擇所有的數據。
,如果你有heade3rs檢查複選框不要忘記
注:如果你不確定你的表名只需單擊表,然後在功能區的新選項卡會彈出最後稱爲表工具/設計。在該選項卡上,最左側的區域包含您的表名,您可以將其更改爲任何您想要的內容。
複製整行 - >完成運行宏,然後插入一列。 – 2013-06-18 13:49:41