如何动态扩展需要复制到另一个工作表的两列中的行数?
首先,我确定需要包含和存储在totrows
中的行数:
Dim totrows As Integer
With ThisWorkbook.Worksheets("Sheet1")
totrows = .Range("A" & .Rows.Count).End(xlUp).Row
End With
接下来,我试图扩展感兴趣的两列(“B”和“G”),以便范围包括totrows
行。对于一个静态的例子,如果totrows
= 100那么我会:
With ThisWorkbook.Worksheets("Sheet1")
.Range("B2:B102,G2:G102").copy
End With
然后我将它们粘贴到我的第二张表格中:
ThisWorkbook.Worksheets("Sheet2").Range("A2").Paste
答案 0 :(得分:3)
.Range("B2:B102,G2:G102").copy
可以写成
.Range("B2:B" & totrows & ",G2:G" & totrows).Copy
答案 1 :(得分:1)
不使用.Copy
或.Paste
的另一种方法是:
Sub Copy()
Dim wb As Workbook
Dim wsCopy As Worksheet
Dim wsPaste As Worksheet
Dim totrows As Integer
Set wb = Workbooks("Book1.xlsm")
Set wsCopy = wb.Worksheets("Sheet1")
Set wsPaste = wb.Worksheets("Sheet2")
totrows = wsCopy.Range("A" & wsCopy.Rows.Count).End(xlUp).Row
wsPaste.Range("A1:B" & totrows) = wsCopy.Range("A2:A" & totrows, "G2:G" & totrows).Value
End Sub
这样您可以直接将值放入所需的Range
。