在另一个文件中参考范围
我在一个打开的Excel文件中有一个macros,并想引用另一个打开的Excel文件中的单元格。
Range("b5").Activate ActiveCell.Value = '[jobpl1.xlsx]Sheet1'!E16
它不能编译。
你应该使用:
Workbooks("Book1").Range("A1").Value = Workbooks("Book2").Range("A1").Value
或者如果你喜欢你的方法,那么(如果它是开放的)
ActiveCell.Value = "=('[Workbook1.xls]Sheet1'!$A$1)"
并在它被closures的情况下,然后使用完整path参考:
ActiveCell.Value = "=('C:\Users\username\Desktop\[Workbook1.xls]Sheet1'!$A$1)"
要引用另一个工作簿中的范围,请包括Workbook对象,然后包括Range对象:
Workbooks("Bla.xlsx").Worksheets("Sheet1").Range("A1")
要么
Option Explicit Sub Test() Dim FilePath As String '// File Path FilePath = Environ("USERPROFILE") & "\Documents\" With Range("B1:B2") .Formula = "='" & FilePath & "[Bla.xlsx]Sheet1'!A1:A2" .Value = .Value End With End Sub
.activate用于工作簿和工作表。
Range("b5").Select ActiveCell.Value = '[jobpl1.xlsx]Sheet1'!E16
应该可以工作,但是如果你想把用户带到那个地方,你就只应该select单元格,而不要对这个单元格做任何事情。 (因为select单元格会浪费处理时间。)而是直接将值赋给所讨论的单元格:
Range("b5").value = "=('[Workbook1.xls]Sheet1'!$A$1)"
或者使用范围variables。
dim temprange as range set temprange = Range("B5") tamprange.value = "=('[Workbook1.xls]Sheet1'!$A$1)"
另外如果你想公式的单元格我build议使用.formula而不是.value在这种情况下可能无所谓,但是当你阅读单元格的内容,这将是重要的,这也将是至关重要的,如果你写到单元格中,代码在另一个国家设置的Excel表单上使用。 (.formula自动识别语言设置和转换,等等。)