【已解决】请教打开带有宏的Excel表数据无法显示的问题,谢谢。
本帖最后由 bhwhui 于 2011-12-1 15:57 编辑在打开一个excel表(带有宏)时,用手工点击打开或使用Run命令(复制到启动目录)很正常。如附件11.jpg所示。
而如果使用_ExcelBookopen 或者Object 命令打开,就出现错误,提示“公式中包含不可识别的文本”,如12.jpg所示。
13.jpg是使用3种方法的截图。
因为使用run命令打开,虽然正常,但获得句柄很麻烦,操作起来不顺手。
请教1:有什么方法能正常打开带有宏的Excel表?
2:如果都不行,如何获得run命令打开的Excel句柄?这是没办法的办法了。。。
谢谢 直接用运行宏的udf可以么? http://www.autoitx.com/forum.php?mod=viewthread&tid=13074&highlight=%D4%CB%D0%D0%2B%BA%EA 不好意思,EXcel表启动时运行的不是宏而是VBA,上述方法无效,谢谢您。 关注。。回复赚金币 回复 4# bhwhui
宏不就是VBA 编写的?.. 先$oexcel.enableevents=false,再打开试下 本帖最后由 bhwhui 于 2011-12-1 11:54 编辑
events在后面打开,程序如下,一样的结果。还是“存在不可识别的文本”。问题没解决,谢谢您。。。
我的情况比较特殊,找到问题的根源了,在于还有另外一个.xll文件需要加载。
可能手工运行时,Excel会自动加载,运行一次。而用程序打开时,Excel就不会自动加载和运行了。。。。 加载。xll的代码如下:
Private Sub VerifyOpen()
Dim XLLName As String, Quote As String
Dim theArray As Variant
Dim i As Integer
Dim XLLFound As Boolean
XLLName = "Addin.xll" '这里改XLL文件名称
'Application.RegisteredFunctions
theArray = Application.RegisteredFunctions
If Not (IsNull(theArray)) Then
For i = LBound(theArray) To UBound(theArray)
If (InStr(theArray(i, 1), XLLName)) Then
Exit Sub
End If
Next i
End If
Quote = String(1, 34)
WASPCNPath = ThisWorkbook.Path
WASPCNPath = WASPCNPath & "\\"
XLLFound = Application.RegisterXLL(WASPCNPath & XLLName)
If (XLLFound) Then
Exit Sub
End If
WASPCNPath = "" & "\\"
XLLFound = Application.RegisterXLL(WASPCNPath & XLLName)
If (XLLFound) Then
Exit Sub
End If
WASPCNPath = "\\LIBRARY\\WASPCN" & "\\"
XLLFound = Application.RegisterXLL(WASPCNPath & XLLName)
If (XLLFound) Then
Exit Sub
End If
MsgBox ("Cannot find XLL file")
ThisWorkbook.Close (False)
End Sub
谢谢大家的帮助。。。。。 Sour的方法应该可行!可惜我试了半天,老是出错,水平不够吧,谢谢各位。。。。 问题已解决,麻烦斑竹移动到“已解决区”。
上面已附解决方法,回报论坛吧,让后来人少走些弯路。。。。。
页:
[1]