Vb到VBA
Option Explicit以下代码在visual Basic中可用,但我似乎无法在vba 2010中使用它;shell 32.dll“;别名;ShellExecuteA“;(ByVal hwnd As Long,ByVal lpszOp As String,ByVal lpszFile As String、ByVal lpszParams As String和ByVal lpszDir As String以及ByVal FsShowCmd As Long)只要公共函数OpenFile(ByVal FileName As String)一样长 ;OpenFile=ShellExecute ;[挂在这里];(0,“打开”,文件名,“C:\ALL\u pdf\u Cut\u Sheets\Actuators\”,1)结束函数 ;OpenFile;C: \所有pdf\u Cut\u Sheets\Actuators\ms8105a1008.pdf“
结束Sub
任何受欢迎的想法…
标记。。。。。
为了什么';值得一提的是,它在2008年运行良好 ; 我似乎总是得到不正常的结果;我需要检查证明文件吗? 我只检查了2008年的默认值。 你在用什么操作系统?你以前用这个的时候是同一个吗? 检查ShellExecute的返回值
如果成功,ShellExecute返回大于32的值,否则返回小于或等于32的错误值
错误代码:
http://msdn.microsoft.com/en-us/library/bb762153%28v=vs.85%29.aspx当Long=11时,Private Const SE\u ERR\u访问被拒绝,只要Long=5
Private Const SE\u ERR\u ASSOCINCOMPLETE,只要Long=27
Private Const SE\u ERR\u DDEBUSY,只要=30
Private Const SE_ERR_DDEFAIL,只要=29
Private Const SE\u ERR\u NOASSOC As Long=31
Private Const SE\u Error\u OOM As Long=8
Private Const SE\ u ERR\ u PNF As Long=3
windows xp32位。最初的代码是用visual basic 6.0编写的,我试图让它在acad2010 vba(附加组件)中工作,它挂在openfile=ShellExecute(0,“Open”,FileName,“C:\gtc\u proj\2008\u Blocks\Valves\Honeywell\Product Link\,1)上 ;运行时错误表示49错误DLL调用对流
感谢您的帮助…马克  ;windows xp32位。最初的代码是用visual basic 6.0编写的,我试图让它在acad2010 vba(附加组件)中工作,它挂在openfile=ShellExecute(0,“Open”,FileName,“C:\gtc\u proj\2008\u Blocks\Valves\Honeywell\Product Link\,1)上 ;运行时错误表示49错误DLL调用对流
感谢您的帮助……在您方便的时候……标记它';这很奇怪
它在我的电脑中运行良好:XP SP3 32位+AutoCAD 2010
It';这很奇怪
它在我的电脑中运行良好:XP SP3 32位+AutoCAD 2010我知道!我对vba中的其他东西有很多其他的怪癖(像这样的东西可以在其他人的机器上工作,但不是我的!)非常令人沮丧:realmad:我真的应该完全抛弃vba,但我有一个在vb(a)中建立的大量块库,我知道老板不会为vb.net程序掏钱 ;如果不是我,他们仍然在ACAD R13上
谢谢你的意见。马克。。。 Net是一个免费下载的快速版本-但至少在你最新的评论中有一个线索,
糟糕的调用约定听起来像是变量类型在API调用中被破坏了。在.NET中,行为已经发生了变化,您不得不多次使用IntPtr,而不是长时间使用。
页:
[1]
2