【发布时间】:2017-11-03 16:04:27
【问题描述】:
我正在尝试选择以行号和列号为变量的单元格块。让我们从一个静态的开始:-
我已经获得了合并单元格的行数。现在我正在尝试将用例的完整块复制到新工作表(与用例同名)。 因此,例如,我试图将用例 Random 1 的 Range("C7:K11") 复制到 Worksheet Random1。
我在这里遇到的唯一问题是使用可变行号和列号复制此 Range。 但是,此静态代码以及具有动态变量的代码不起作用:-
shtPricing.Range(Cells(7, 3), Cells(9, 11)).Copy
xWb.Worksheets(UsecaseTrail).Range(Cells(2, 3), Cells(4, 11)).PasteSpecial xlPasteValues
具体代码:
Dim lColumn As Long
Dim RowCount As Long
Dim ColumnCounter As Long
Dim RowCounter As Long
Dim tempUseCase As String
lColumn = xWb.Worksheets("Pricing").Cells(6, Columns.Count).End(xlToLeft).Column
For RowCounter = 7 To 25
RowCount = xWb.Worksheets("Pricing").Range("B" & RowCounter).MergeArea.Rows.Count
If RowCount > 1 Then
If InStr(1, CStr(xWb.Worksheets("Pricing").Range("B" & RowCounter).Value), UsecaseTrail) Then
xWb.Worksheets("Pricing").Range(Cells(RowCounter, 3), Cells(RowCounter + RowCount - 1, lColumn)).Copy
xWb.Worksheets(UsecaseTrail).Range(Cells(2, 3), Cells(2 + RowCount - 1, lColumn)).PasteSpecial xlPasteValues
End If
RowCounter = RowCounter + RowCount - 1 'note -1 here
End If
Next RowCounter
请注意,一切正常。除了具有可变 Rowcounter 和 columncounter 值的复制粘贴功能。 仅通过以下代码会非常有帮助:-
xWb.Worksheets("Pricing").Range(Cells(RowCounter, 3), Cells(RowCounter + RowCount - 1, lColumn)).Copy
xWb.Worksheets(UsecaseTrail).Range(Cells(2, 3), Cells(2 + RowCount - 1, lColumn)).PasteSpecial xlPasteValues
【问题讨论】: