打开文件:
            Dim a&
            a = ShellExecute(0, "open", args, 0, 0, 1)拷贝文件
            Dim arg() As String
            arg = Split(args, ",")
            abc = FileDialog(Me, True, "保存文件到", "*.*", FileName & arg(1))
            If abc <> "" Then
                Set FileSys = CreateObject("scripting.filesystemobject")
                FileSys.CopyFile App.Path & "\" & arg(0), abc, True
                Set FileSys = Nothing
            End If程序运行后,打开文件很正常,只要执行了拷贝文件的代码后,再打开就打不开了呢。只要不执行拷贝就没问题。为什么呢?

解决方案 »

  1.   

    Dim arg() As String
    要写成
    Dim arg As String
      

  2.   

    a=ShellExecute(0,"open",args,vbnullstring , vbnullstring, SW_SHOWNORMAL)
      

  3.   

    拷贝文件用下面这个,不要用对象操作,以避免文件被对象打开:'将f:\5555\1.jpg 拷贝成 f:\6666\2.jpg
    shell("c:\windows\system32\cmd.exe /c ""copy f:\5555\1.jpg f:\6666\2.jpg"""),vbhide
      

  4.   

    运行可执行文件可以使用:Shell命令,具体用法参考楼上的。
    复制文件可以用CopyFile函数(API)
      

  5.   

    复制一个文件。语法FileCopy source, destinationFileCopy 语句的语法含有以下这些命名参数:部分 描述 
    source 必要参数。字符串表达式,用来表示要被复制的文件名。source 可以包含目录或文件夹、以及驱动器。 
    destination 必要参数。字符串表达式,用来指定要复制的目地文件名。destination 可以包含目录或文件夹、以及驱动器。