簡體   English   中英

在VBA中復制除最后一列以外的行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM