Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA打开Excel文件并将工作表1数据粘贴到;“进口”;当前工作簿中的工作表_Vba_Excel - Fatal编程技术网

VBA打开Excel文件并将工作表1数据粘贴到;“进口”;当前工作簿中的工作表

VBA打开Excel文件并将工作表1数据粘贴到;“进口”;当前工作簿中的工作表,vba,excel,Vba,Excel,好的,我有一本当前的工作簿(原始工作簿),有几页。我想打开现有工作簿(数据工作簿),复制“数据工作簿”第1页中的所有内容,然后将所有内容粘贴到“原始工作簿”的“RRimport”页中。在这个过程结束时,我想关闭“数据工作簿”,到目前为止,我有以下代码,但是它当前在我的原始工作簿的工作表名称“ARGimport”之后粘贴一张新工作表: Sub ImportData() Dim wb1 As Workbook Dim wb2 As Workbook Set wb1 = ActiveWorkboo

好的,我有一本当前的工作簿(原始工作簿),有几页。我想打开现有工作簿(数据工作簿),复制“数据工作簿”第1页中的所有内容,然后将所有内容粘贴到“原始工作簿”的“RRimport”页中。在这个过程结束时,我想关闭“数据工作簿”,到目前为止,我有以下代码,但是它当前在我的原始工作簿的工作表名称“ARGimport”之后粘贴一张新工作表:

Sub ImportData()

Dim wb1 As Workbook
Dim wb2 As Workbook

Set wb1 = ActiveWorkbook

FileToOpen = Application.GetOpenFilename _
(Title:="Please choose a Report to Parse", _
FileFilter:="Report Files *.xls (*.xls),")

If FileToOpen = False Then
    MsgBox "No File Specified.", vbExclamation, "ERROR"
    Exit Sub
Else
    Set wb2 = Workbooks.Open(Filename:=FileToOpen)

    For Each Sheet In wb2.Sheets
        If Sheet.Visible = True Then
            Sheet.Copy After:=wb1.Sheets("ARGimport")
        End If
    Next Sheet

End If

    wb2.Close

End Sub
多亏了他的帮助,我才弄明白这一点。更新和工作代码如下:

Sub ImportData()

Dim wb1 As Workbook
Dim wb2 As Workbook
Dim Sheet As Worksheet
Dim PasteStart As Range

Set wb1 = ActiveWorkbook
Set PasteStart = [RRimport!A1]

Sheets("RRimport").Select
    Cells.Select
    Selection.ClearContents

FileToOpen = Application.GetOpenFilename _
(Title:="Please choose a Report to Parse", _
FileFilter:="Report Files *.xls (*.xls),")

If FileToOpen = False Then
    MsgBox "No File Specified.", vbExclamation, "ERROR"
    Exit Sub
Else
    Set wb2 = Workbooks.Open(Filename:=FileToOpen)

    For Each Sheet In wb2.Sheets
        With Sheet.UsedRange
            .Copy PasteStart
            Set PasteStart = PasteStart.Offset(.Rows.Count)
        End With
    Next Sheet

End If

    wb2.Close

End Sub

这是你想要的吗

Sub ImportData()

Dim wb1 As Workbook
Dim wb2 As Workbook
Dim Sheet As Worksheet
Dim PasteStart As Range

Set wb1 = ActiveWorkbook
Set PasteStart = [RRimport!A1]

FileToOpen = Application.GetOpenFilename _
(Title:="Please choose a Report to Parse", _
FileFilter:="Report Files *.xls (*.xls),")

If FileToOpen = False Then
    MsgBox "No File Specified.", vbExclamation, "ERROR"
    Exit Sub
Else
    Set wb2 = Workbooks.Open(Filename:=FileToOpen)

    For Each Sheet In wb2.Sheets
        With Sheet.UsedRange
            .Copy PasteStart
            Set PasteStart = PasteStart.Offset(.Rows.Count)
        End With
    Next Sheet

End If

    wb2.Close

End Sub

嘿,谢谢,快到了!它现在粘贴到指定的工作表(RRimport)中,但是,我需要它删除该工作表上的旧内容并仅粘贴新数据。到目前为止,如果旧内容的内容一直到第999行,而新数据只有500行数据,那么第501-999行仍然存在。我需要它删除旧数据,只有新数据。谢谢你的帮助!事实上,我能找出剩下的。我已经更新了上面的代码。谢谢rdhs!