如何使用VBA将特定数据从工作簿粘贴到另一个工作簿?我有一个程序,但它是为床单。我能做些什么来修复?

如何使用VBA将特定数据从工作簿粘贴到另一个工作簿?我有一个程序,但它是为床单。我能做些什么来修复?,vba,excel,Vba,Excel,如何使用VBA将特定数据从工作簿粘贴到另一个工作簿?我有一个程序,但它是为床单。我能做些什么来修复 我试图在线验证其他代码,但找不到修复的方法。我是VBA新手,所以任何帮助都会很棒!谢谢 Private Sub CommandButton1_Click() a = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row For i = 2 To a If Worksheets("Sheet1").Cel

如何使用VBA将特定数据从工作簿粘贴到另一个工作簿?我有一个程序,但它是为床单。我能做些什么来修复

我试图在线验证其他代码,但找不到修复的方法。我是VBA新手,所以任何帮助都会很棒!谢谢

Private Sub CommandButton1_Click()
    a = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row

    For i = 2 To a  
        If Worksheets("Sheet1").Cells(i, 3).Value = "KSR" Then
            Worksheets("Sheet1").Rows(i).Cut

            Workbooks.Open("C:\Users\kevinsaldala\Desktop\TEST1.xlsm").Worksheets("Sheet1").Activate

            b = Workbooks.Open("C:\Users\kevinsaldala\Desktop\TEST1.xlsm").Worksheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row

            Workbooks.Open("C:\Users\kevinsaldala\Desktop\TEST1.xlsm").Worksheets("Sheet1").Cells(b + 1, 1).Select

            ActiveSheet.Paste    
            Worksheets("Sheet1").Activate          
        End If     
    Next

    Application.CutCopyMode = False

    ThisWorkbook.Worksheets("Sheet1").Cells(1, 1).Select

End Sub

根据我的测试,我们可以使用以下代码将数据从工作簿复制到工作簿(复制行现在不起作用,因此如果我们要复制整行的数据,我们可以使用for/for each来处理整行的数据):

Sub Test8()
Dim a As Long, b As Long
Dim targetWorkbook As Workbook
Dim sourceSheet As Worksheet
Dim targetWorksheet As Worksheet

  Set sourceSheet = Worksheets("Sheet4")
  Set targetWorkbook = Application.Workbooks.Open("D:\test.xlsx")
  Set targetWorksheet = targetWorkbook.Worksheets("Sheet2")
  a = sourceSheet.Cells(Rows.Count, 1).End(xlUp).row

    For i = 2 To a
        If sourceSheet.Cells(i, 3).Value = "KSR" Then
            'sourceSheet.Rows(i).Copy
             sourceSheet.Cells(i, 3).Copy

            targetWorksheet.Activate

            b = targetWorksheet.Cells(Rows.Count, 1).End(xlUp).row

            targetWorksheet.Cells(b + 1, 1).Select

            'MsgBox "A" & (b + 1)

            targetWorksheet.Paste

            sourceSheet.Activate
        End If
    Next

    Application.CutCopyMode = False

    ThisWorkbook.Worksheets("Sheet4").Cells(1, 1).Select

End Sub

如果我们想复制整个指定的工作表,只需在UsedRange上迭代即可。

有很多东西需要解包,但您首先需要做一些研究:)尝试从这里开始谢谢@Marcucciboy2我感谢您的帮助!可能值得说明您要从何处复制(哪个工作簿、工作表和范围)以及复制到何处。我建议更改
工作簿
工作表
的变量名称,以便它们不会与任何保留字错误对齐并导致问题。