文档介绍:该【ExecuteExcel4Macro使用说明】是由【鼠标】上传分享,文档一共【4】页,该文档可以免费在线阅读,需要了解更多关于【ExecuteExcel4Macro使用说明】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。ExecuteExcel4Macro(宏函数)使用说明
用 ExecuteExcel4Macro 从未打开的 Excel 工作簿中读取数据(转
载)
从另外一个未打开的 Excel 文件中读取数据的函数
下面这个函数调用 XLM 宏从未打开的工作簿中读取数据.
*注意: 该函数不能用于公式.
GetValue 函数,需要以下四个变量
path: 未打开的 Excel 文件的路径 (., "d:\test")
file: 文件名(., "")
sheet: 工作表的名称 (., "Sheet1")
ref: 引 用的单元格 (., "C4")
'*********函数如下
Private Function GetValue(path, file, sheet, ref)
' 从 未打开的 Excel 文件中检索数据
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)
' 执 行 XLM 宏
GetValue = ExecuteExcel4Macro(arg)
End Function
使用该函数:
将该语句复制到 VBA 的模块中,然后,在适当的语句中调用该函数.
下面的例子显示 D:\test 下的文件 的 Sheet1 中的单元格”A1”
的内容.
Sub TestGetValue()
p = "d:\test"
f = ""
s = "Sheet1"
a = "A1"
MsgBox GetValue(p, f, s, a)
End Sub
1200 个
数值(100 行 12 列),并将结果填到当前工作表中.
Sub TestGetValue2()
p = "d:\test "
f = ""
s = "Sheet1"
= False
For r = 1 To 100
For c = 1 To 12
a = Cells(r, c).Address
Cells(r, c) = GetValue(p, f, s, a)
Next c
Next r
= True
End Sub
说明: 如果工作簿处于隐藏状态,或者工作表是图表工作表,将会报
错.
ExecuteExcel4Macro 使用说明
ExecuteExcel4Macro 方法
請參見 套用至 範例 特定
執行 Microsoft Excel 集函數,然後傳回此函數的結果。傳
回結果的型態取決於函數的型態。
(String)
expression 選擇性的。傳回 Application 物件的運算式。
String 必選的 String資 料型態。不帶等號的 Microsoft Excel
巨集語言函數。所有參照必須是像 R1C1 這樣的字串。如果 String 內
包 含 雙 引 號 , 則 必 須 寫 兩 個 。 例 如 , 要 執 行 此 巨 集 函 數
=MID("sometext",1,4),String 應寫成 [MID(""sometext"",1,4)]。
註解
Microsoft Excel 巨集不在目前活頁簿或工作表的環境中求值。
也就是說所有的參照都應該是外部參照,而且需要明確指定活頁簿名
稱 。 例 如 , 要 在 Book1 中 執 行 Microsoft Excel 巨 集
[My_Macro] ,必須使用 [Book1!My_Macro()]。如果不指定活頁簿
名稱,此方法將失敗。
範例
此範例對 Sheet1 的 C3 儲存格執行 (42) 巨集函數,然
後在訊息方塊中顯示結果。(42) 巨集函數傳回目前視窗左限
到目前儲存格的左邊之間的水平距離。Visual Basic中 沒有與此巨集函
數直接等價的函數。
Worksheets("Sheet1").Activate
Range("C3").Select
MsgBox ExecuteExcel4Macro("(42)")
'***直接讀取 c:\(不打開)中 的值另一種參考代碼
(比一楼的写法简单许多)
Sub TestGetValue()
str0 = "'C:\[]Sheet1'!R1C1"
MsgBox ExecuteExcel4Macro(str0)
End Sub)
雖然 Excel VBA的相關說明只有一點點,但我覺的
ExecuteExcel4Macro 似乎好像有更多的用法 ,有待大家一同去發
掘了