[英]Copying Row Except Last Column in VBA
我正在編寫Excel VBA
宏,任務之一是將數據的一部分從工作表復制到另一工作表。
我目前使用以下代碼,它可以復制整行(C是行索引):
Dim ConsolidatedRow As Excel.Range
Set ConsolidatedRow = ConsolidatedSheet.Range("A" & C).EntireRow
...
ConsolidatedRow.Copy Destination:=ResultSheet.Range("A" & ResultRowIndex)
我想復制ConsolidatedRow
,但沒有最后一列。 最后一列用於聲明和復制之間的其他操作,因此理想的解決方案是更改復制語句。 我嘗試了偏移量,更新了ConsolidatedRow
的范圍和其他負載,但是沒有運氣。
我更喜歡使用Range.End屬性來查找最后使用的單元格。 如果您的行沒有延伸到表格中的其他行,則可以提供幫助。 用以下命令替換Set ConsolidatedRow命令:
With ConsolidatedSheet
CopyExtent = .Range("A" & C).End(xlToRight).Column - 1
Set ConsolidatedRow = .Range(.Cells(C, 1), .Cells(C, CopyExtent))
End With
這假設您的數據沒有任何差距。 如果要在復制的部分中包含空白單元格,請更改為此:
CopyExtent = ConsolidatedSheet.Cells(C, .Columns.Count).End(xlToLeft).Column - 1
希望這可以幫助!
假設您在此工作表中不使用此solidifiedRow后面的列,請在設置后添加兩行
Set ConsolidatedRow = Intersect(ConsolidatedSheet.UsedRange, ConsolidatedRow)
Set ConsolidatedRow = ConsolidatedRow.Resize(1, ConsolidatedRow.Columns.Count - 1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.