Vba 将电子表格从下载文件夹本地复制到其他电子表格的主工作表中

Vba 将电子表格从下载文件夹本地复制到其他电子表格的主工作表中,vba,excel,download,Vba,Excel,Download,我遇到了一个路障,我一辈子都想不出来。以下是我试图实现的目标: 我使用的程序将数据的快照导出到电子表格(.xls)中,并在本地下载文件夹 我需要将此电子表格的表1的数据(不打开它)复制到我保存在其他地方的主电子表格中,即“主”表和打开。我在主工作表上有一个宏按钮,运行此代码 需要注意的是,我必须使下载文件夹动态化,因为它不是一个特定的用户名,因为它将被多个用户使用 此代码适用于1人: 子sbCopyingAFile() Dim MyFile作为字符串、Str作为字符串、MyDir作为字符串、

我遇到了一个路障,我一辈子都想不出来。以下是我试图实现的目标:

  • 我使用的程序将数据的快照导出到电子表格(.xls)中,并在本地下载文件夹
  • 我需要将此电子表格的表1的数据(不打开它)复制到我保存在其他地方的主电子表格中,即“主”表和打开。我在主工作表上有一个宏按钮,运行此代码
需要注意的是,我必须使下载文件夹动态化,因为它不是一个特定的用户名,因为它将被多个用户使用

此代码适用于1人:

子sbCopyingAFile()
Dim MyFile作为字符串、Str作为字符串、MyDir作为字符串、Wb作为工作簿
变暗Rws的长度与Rng的范围相同
设置Wb=ThisWorkbook
MyDir=“C:\Users\{myu Username}\Downloads\”
MyFile=Dir(MyDir&“*.xls”)
ChDir MyDir
Application.ScreenUpdate=0
Application.DisplayAlerts=0
当我的文件“”时执行此操作
工作簿。打开(MyFile)
附工作表(1)
Rws=.Cells(Rows.Count,“A”).End(xlUp).Row
设置Rng=范围(.Cells(2,1),.Cells(Rws,19))
Rng.复制Wb.工作表(“转储”).单元格(Rows.Count,“B”).结束(xlUp).偏移量(0,0)
ActiveWorkbook.Close为真
以
MyFile=Dir()
环
出错时继续下一步
杀死“C:\Users\{My_Username}\Downloads\*.*”
错误转到0
端接头
这是我最后一次尝试获取任何下载文件夹,不特定于用户名:

Sub sbCopyingAFile()
Dim MyFile As String, Str As String, Wb As Workbook, MyDir As String
'Dim fso
Dim Rws As Long, Rng As Range
'Set fso = CreateObject("Scripting.FileSystemObject")
Set Wb = ThisWorkbook
MyDir = CreateObject("WScript.Shell").specialfolders("Downloads")
'MyDir = "C:\Users\{My_Username}\Downloads\"
MyFile = Dir(MyDir & "*.xls")
ChDir MyDir
Application.ScreenUpdating = 0
Application.DisplayAlerts = 0

Do While MyFile <> ""
Workbooks.Open (MyFile)
With Worksheets(1)
    Rws = .Cells(Rows.Count, "A").End(xlUp).Row
    Set Rng = Range(.Cells(2, 1), .Cells(Rws, 19))
    Rng.Copy Wb.Worksheets("DUMP").Cells(Rows.Count, "B").End(xlUp).Offset(0, 0)
    ActiveWorkbook.Close True
End With
MyFile = Dir()
Loop
On Error Resume Next
'Kill "C:\Users\{My_Username}\Downloads\*.*"
On Error GoTo 0
End Sub
子sbCopyingAFile()
Dim MyFile作为字符串、Str作为字符串、Wb作为工作簿、MyDir作为字符串
“昏暗的fso
变暗Rws的长度与Rng的范围相同
'Set fso=CreateObject(“Scripting.FileSystemObject”)
设置Wb=ThisWorkbook
MyDir=CreateObject(“WScript.Shell”).specialfolders(“下载”)
'MyDir=“C:\Users\{myu Username}\Downloads\”
MyFile=Dir(MyDir&“*.xls”)
ChDir MyDir
Application.ScreenUpdate=0
Application.DisplayAlerts=0
当我的文件“”时执行此操作
工作簿。打开(MyFile)
附工作表(1)
Rws=.Cells(Rows.Count,“A”).End(xlUp).Row
设置Rng=范围(.Cells(2,1),.Cells(Rws,19))
Rng.复制Wb.工作表(“转储”).单元格(Rows.Count,“B”).结束(xlUp).偏移量(0,0)
ActiveWorkbook.Close为真
以
MyFile=Dir()
环
出错时继续下一步
“Kill”C:\Users\{My_Username}\Downloads\*.*
错误转到0
端接头
您可以使用
环境$(“用户名”)
获取当前用户名。这将返回一个字符串

因此,您的路径将沿着以下路线:

"C:\Users\" & Environ$("Username") & "\Downloads\"

您还可以使用
Environ$(“UserProfile”)和“\Downloads\”
,以防用户在一个奇怪的地方设置他们的配置文件,而不是
“C:\Users”

@braX您不讨厌吗?:问题持续45分钟没有答案,然后两个人同时回答。。。没关系,tho-你需要更多的要点:PYou还可以使用
Environ$(“UserProfile”)和“\Downloads\”
,以防用户在一个奇怪的地方设置他们的配置文件,而不是
“C:\Users”
@Thuunder看起来像是你在
MyDir=“C:\Users\”和“\Downloads\”