Excel 使用宏覆盖选项卡中的现有数据

Excel 使用宏覆盖选项卡中的现有数据,excel,vba,Excel,Vba,我在网上找到了一个宏,它读取“dat”文件或“文本”文件,并将它们放在打开的excel中,为使用下面的宏指定的文件夹中的每个文件创建一个选项卡。现在的问题是,我必须继续在同一个excel中重新导入新数据,因为数据正在更改,或者我必须重新读取该文件 因此,如果名称已存在,则此宏始终会创建一个新选项卡。我需要它来覆盖数据,而不是重新创建新选项卡。我有其他选项卡引用导入的数据选项卡。所以我不知道该怎么做 Sub loadMacro() 'UpdatebyExtendoffice6/7/2016 Dim

我在网上找到了一个宏,它读取“dat”文件或“文本”文件,并将它们放在打开的excel中,为使用下面的宏指定的文件夹中的每个文件创建一个选项卡。现在的问题是,我必须继续在同一个excel中重新导入新数据,因为数据正在更改,或者我必须重新读取该文件

因此,如果名称已存在,则此宏始终会创建一个新选项卡。我需要它来覆盖数据,而不是重新创建新选项卡。我有其他选项卡引用导入的数据选项卡。所以我不知道该怎么做

Sub loadMacro()
'UpdatebyExtendoffice6/7/2016
Dim xWb As Workbook
Dim xToBook As Workbook
Dim xStrPath As String
Dim xFileDialog As FileDialog
Dim xFile As String
Dim xFiles As New Collection
Dim I As Long

Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = False
xFileDialog.Title = "C:\Users\"
If xFileDialog.Show = -1 Then
    xStrPath = xFileDialog.SelectedItems(1)
End If
If xStrPath = "" Then Exit Sub
If Right(xStrPath, 1) <> "\" Then xStrPath = xStrPath & "\"
xFile = Dir(xStrPath & "*.dat")
If xFile = "" Then
    MsgBox "No files found", vbInformation, "Kutools for Excel"
    Exit Sub
End If
Do While xFile <> ""
    xFiles.Add xFile, xFile
    xFile = Dir()
Loop
Set xToBook = ThisWorkbook
If xFiles.Count > 0 Then
    For I = 1 To xFiles.Count
        Set xWb = Workbooks.Open(xStrPath & xFiles.Item(I))
        xWb.Worksheets(1).Copy After:=xToBook.Sheets(xToBook.Sheets.Count)
        On Error Resume Next
        ActiveSheet.Name = xWb.Name
        On Error GoTo 0
        xWb.Close False
    Next
End If
End Sub
子加载宏()
'更新日期:2016年6月7日
Dim xWb作为工作簿
将xToBook设置为工作簿
作为字符串的Dim xStrPath
将xFileDialog设置为文件对话框
将xFile设置为字符串
将xFiles设置为新集合
我想我会坚持多久
设置xFileDialog=Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect=False
xFileDialog.Title=“C:\Users\”
如果xFileDialog.Show=-1,则
xStrPath=xFileDialog.SelectedItems(1)
如果结束
如果xStrPath=“”,则退出Sub
如果正确(xStrPath,1)“\”则xStrPath=xStrPath&“\”
xFile=Dir(xStrPath&“*.dat”)
如果xFile=”“,则
MsgBox“未找到文件”,vbInformation,“Kutools for Excel”
出口接头
如果结束
当xFile“”时执行此操作
添加xFile,xFile
xFile=Dir()
环
设置xToBook=thiswook
如果xFiles.Count>0,则
对于I=1到xFiles.Count
设置xWb=Workbooks.Open(xStrPath&xFiles.Item(I))
xWb.Worksheets(1).复制时间:=xToBook.Sheets(xToBook.Sheets.Count)
出错时继续下一步
ActiveSheet.Name=xWb.Name
错误转到0
xWb.关闭错误
下一个
如果结束
端接头
更换

xWb.Worksheets(1).复制后:=xToBook.Sheets(xToBook.Sheets.Count)
出错时继续下一步
ActiveSheet.Name=xWb.Name
错误转到0

出错时继续下一步
xToBook.Worksheets(xWb.name).Cells.Clear
与xWb.工作表(1)一起使用
xToBook.Worksheets(xWb.name).单元格(1,1).调整大小(.Rows.Count、.Columns.Count).值=.Value
以
错误转到0

xWb.Worksheets(1).之后复制:=xToBook.Sheets(xToBook.Sheets.Count)
是您的新标签的组成部分。克里斯,感谢您抽出时间来帮助我。所以我按照你的建议更新了我的宏。虽然它不是重新创建新的标签,这是伟大的。然而,这并不是用新数据覆盖我的旧数据,这是我的主要目标。再次感谢你的帮助。