首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VBA可以调用窗口文件传输弹出吗?

VBA可以调用窗口文件传输弹出吗?
EN

Stack Overflow用户
提问于 2020-05-04 22:26:31
回答 1查看 142关注 0票数 0

我正在为我的工作尝试一个VBA脚本,最后我希望它通过将所有文件复制到一个网络驱动器来备份自己。这需要很长时间,因为它有大量的数据,而且VPN的速度很慢。

与其编写我自己的进度条脚本来让用户知道它还在工作,VBA还能调用普通的弹出来跟踪它吗?

但是,当我从工作簿运行它时,它会在没有复制任何内容的情况下使工作簿崩溃。

代码语言:javascript
复制
#If VBA7 Then    ' VBA7
Public Declare PtrSafe Function SHFileOperation Lib "shell32.dll" _
Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As LongPtr

Public Const FO_COPY = &H2
Public Const FOF_SIMPLEPROGRESS = &H100
Public Const FOF_NOCONFIRMATION As Long = &H10

Public Type SHFILEOPSTRUCT
    hWnd As Long
    wFunc As Long
    pFrom As String
    pTo As String
    fFlags As Integer
    fAnyOperationsAborted As Long
    hNameMappings As Long
    lpszProgressTitle As Long
End Type
#End If

Public Sub VBCopyFolder(ByRef strSource As String, ByRef strTarget As String)
    Dim op As SHFILEOPSTRUCT

    With op
        .wFunc = FO_COPY
        .pTo = strTarget
        .pFrom = strSource
        .fFlags = FOF_SIMPLEPROGRESS Or FOF_NOCONFIRMATION
    End With

    '~~> Perform operation
    SHFileOperation op
End Sub
Sub copy_stuff()
Call VBCopyFolder("C:\Users\tihall\Daily Reports\V2 Testing\src", "C:\Users\tihall\Daily Reports\V2 Testing\dst")
End Sub
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-07 20:54:47

我无法理解Windows,所以我放弃了整个代码,在这个站点上找到了其他的东西。This StackOverFlow Thread对我的问题有一个简单得多的解决方案。

我能够让它与下面的代码完美地工作在一起。我使用了tmoore82给出的解决方案。调用VARS是将我需要的路径作为变量。

代码语言:javascript
复制
Public Function Copystuff(ByVal vSource, ByVal vDest) As Long
    Dim objShell, objFileSource, objFileDest As Object
    Set objShell = CreateObject("Shell.Application")
    Set objFileSource = objShell.Namespace((vSource)) 
    Set objFileDest = objShell.Namespace((vDest)) 
    Call objFileDest.CopyHere(objFileSource.Items)
End Function

Sub copystuff2()
Dim src, dest
Call VARS
vSource = DL_PATH
vDest = PATH_TO_NETWORK_DRIVE

Call Copystuff(vSource, vDest)
End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61602664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档