当使用多个打开的工作簿(每个工作簿可能有多个工作表)时,定义和设置对所有工作簿和工作表的引用是最安全的。
不要依赖于ActiveWorkbook或ActiveSheet因为它们可能被用户改变。
下面的代码示例演示如何将范围从“复制Raw_Data ”片材在“ Data.xlsx ”工作簿“ Refined_Data在”“片Results.xlsx ”工作簿。
该过程还演示了如何在不使用该Select方法的情况下进行复制和粘贴。
Option Explicit Sub CopyRanges_BetweenShts() Dim wbSrc As Workbook Dim wbDest As Workbook Dim shtCopy As Worksheet Dim shtPaste As Worksheet ' set reference to all workbooks by name, don't rely on ActiveWorkbook Set wbSrc = Workbooks("Data.xlsx") Set wbDest = Workbooks("Results.xlsx") ' set reference to all sheets by name, don't rely on ActiveSheet Set shtCopy = wbSrc.Sheet1 '// "Raw_Data" sheet Set shtPaste = wbDest.Sheet2 '// "Refined_Data") sheet ' copy range from "Data" 工作簿 "Results" workbook without using Select shtCopy.Range("A1:C10").Copy _ Destination:=shtPaste.Range("A1") End Sub