我还没有找到任何例子。
currentSheet = ActiveSheet.Name,
在行
Worksheets(currentSheet).Range("A1").Copy Worksheets("Report").Range("A1")
和"currentSheet"
和currentSheet
。
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
printRow = LastRow + 2
同样,我尝试将.Range("A1")
设置为.Range("PrintRow")
和.Range(PrintRow)
。
Sub CopyAndPrintToReport()
'Find the last used row in a Column: column A in this example
Dim LastRow As Long
Dim printRow As Long
Dim currentSheet As String
currentSheet = ActiveSheet.Name
Worksheets("Report").Activate
With ActiveSheet
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
printRow = LastRow + 2
Worksheets(currentSheet).Range("A1").Copy_
Worksheets("Report").Range(printRow)
End Sub
我需要通过currentSheet = ActiveSheet.Name
引用活动工作表,并通过printRow
引用目标范围。
感谢您的帮助。
答案 0 :(得分:1)
如果设置了变量,则无需使用双引号来引用它(它将不起作用)。
虽然还可以在变量中存储和使用工作表的名称,但通常最好将工作表本身声明为变量并使用它(或者至少在这种情况下,肯定是这样)。
Sub CopyAndPrintToReport()
Dim LastRow As Long
Dim printRow As Range
Dim currentSheet As Worksheet
Set currentSheet = ActiveSheet
With Worksheets("Report")
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
Set printRow = .Range(.Cells(LastRow + 2, "A"), .Cells(LastRow + 2, "A"))
'Set printRow = .Cells(LastRow + 2, "A")
'Set printRow = .Range("A" & LastRow + 2)
End With
currentSheet.Range("A1").Copy printRow
End Sub
可能值得将变量重命名为sourceSheet
而不是currentSheet
之类的东西,但这随时间而来。
我已将printRow
设置为选择范围(大于一个单元格)的方式,但是在注释中看到了对单个单元格执行相同操作的替代方法。
请让我知道我能否进一步提供帮助。