VBA动态执行问题?
如何让VBA动态执行啊,比如:
var
s:='ActiveSheet.Cell[1,1].Value:=123456';
obj:=CreateOleObject('Excel.Application');
如何让obj.s相当于执行obj.ActiveSheet.Cell[1,1].Value:=123456啊?
如果把串ActiveSheet.Cell[1,1].Value:=123456放在一个文本中,
如何让VBA能执行它?
问题点数:100、回复次数:1Top
1 楼icansaymyabc(学习与进步)回复于 2006-03-24 15:16:06 得分 100
给你指条明路。微软的VBS(VBScript,有的网页里也用)就是给有你这种目的人用的。
确保你的机器上正确按装了控件 msscript.ocx
然后在VBA模块里运行以下代码
Sub test()
Dim s
Set s = CreateObject("MSScriptControl.ScriptControl")
Dim txt As String
txt = "ActiveSheet.cells(1,1).value2=123456"
s.Language = "VBScript"
s.AddObject "ActiveSheet", ActiveSheet
s.ExecuteStatement txt
s.Reset
End Sub
怎么样?目的达到了?
要不就写成个例程来调用:
Sub runvbs(cmd As String)
Dim s
Set s = CreateObject("MSScriptControl.ScriptControl")
s.Language = "VBScript"
s.AddObject "ActiveSheet", ActiveSheet
s.ExecuteStatement cmd
s.Reset
End Sub
在需要的地方执行语句:
runvbs "ActiveSheet.cells(1,1).value2=123456"
runvbs "ActiveSheet.cells(1,2).value2=234567"
runvbs "ActiveSheet.cells(2,1).value2=345678"
runvbs "ActiveSheet.cells(2,2).value2=456789"
多爽!
Top




