我正在使用此函数从关闭的工作簿中检索值。在此代码的第 8 行中,我不明白为什么使用“A1”。整个第 8 行到底发生了什么?我也对 xlR1C1 的论点感到困惑。
Private Function GetValue(path, file, sheet, ref)
Dim arg As String
If Right(path, 1) <> "\" Then path = path & "\"
If Dir(path & file) = "" Then
GetValue = "File Not Found"
Exit Function
End If
arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
Range(ref).Range("A1").Address(, , xlR1C1)
GetValue = ExecuteExcel4Macro(arg)
End Function
Range().Range()
文档在这里 http://msdn.microsoft.com/en-us/library/office/ff834676%28v=office.15%29.aspx:
当应用于Range
对象,属性是相对于Range
目的。例如,如果选择的是单元格C3
, then Selection.Range("B1")
返回单元格D3
因为它是相对于Range
返回的对象Selection
财产。另一方面,代码ActiveSheet.Range("B1")
总是返回单元格B1
.
该代码正在使用第二个Range("A1")
以确保如果您有ref
如果范围大于一个单元格,则它仅返回该范围的左上角单元格。它还会出现你的其他Sub
called ExecuteExcel4Macro()
需要一个R1C1
类型单元格引用,以便地址被转换为该类型以传递arg
串入Sub
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)