复制VBA中除最后一列之外的行
我正在编写一个Excel VBA
macros,其中一个任务是将数据的一个子集从一个表复制到另一个。
我目前使用下面,哪个复制整行罚款(C是行索引):
Dim ConsolidatedRow As Excel.Range Set ConsolidatedRow = ConsolidatedSheet.Range("A" & C).EntireRow ... ConsolidatedRow.Copy Destination:=ResultSheet.Range("A" & ResultRowIndex)
我想复制ConsolidatedRow
,但没有最后一列。 最后一列在声明和复制之间的其他操作中使用,所以理想的解决scheme是更改复制语句。 我已经尝试了偏移量,更新了ConsolidatedRow
的范围和其他东西的负载,但没有运气。
我更喜欢使用Range.End属性来定位最后使用的单元格。 如果你的行没有延伸到你的工作表中的其他位置,可以帮助你。 将Set ConsolidatedRow命令replace为以下内容:
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
希望这可以帮助!
假设您在此工作表中不使用这个consolidatedRow后面的列,请在设置后添加两行
Set ConsolidatedRow = Intersect(ConsolidatedSheet.UsedRange, ConsolidatedRow) Set ConsolidatedRow = ConsolidatedRow.Resize(1, ConsolidatedRow.Columns.Count - 1)