当前位置: 首页 > 知识库问答 >
问题:

如何将数据从一个工作表复制到另一个工作表到特定行

高慈
2023-03-14

对所有人,谢谢你提前的时间。

我们已经有了工作代码,可以在Excel中用vb将数据从一个wrksht移动到另一个wrksht。

Set lastrow = Sheets ("SR log").Cells(Rows.Count, 1).End(x1UP)
    With LastRow

如有任何帮助,我们将不胜感激。

2/22/19

以下是我的回应。

 Private Sub CommandButton2_Click()




    Workbooks.Open Filename:="G:\General\COVER  SHEET_Protective\Protective     Packaging Order Log.xlsm", Password:="PP", WriteResPassword:="PP"





   Dim FoundRow As Variant
   FoundRow = Application.Match(Sheets(1).Range("G3"), Sheets(2).Columns(1), 0)
    If IsNumeric(FoundRow) Then
    With FoundRow
        ' found, use FoundRow like LastRow before
    End With
   Else
    ' not found :(
    End If



 .Offset(1).Font.Size = 14

                .Offset(1, 9) = ws.[I10]
                .Offset(1, 10) = ws.[I11]

     End Sub
 Application.Match(Sheets(1).Range("G3"), Sheets(2).Columns(1), 0)

在第二个工作簿上,在第一列上进行搜索时,工作表称为orderlog

谢谢

共有1个答案

嵇永望
2023-03-14

您可以通过application.match找到匹配行:

Private Sub CommandButton2_Click()
    Dim wb1 As Workbook         ' first workbook
    Dim wb2 As Workbook         ' second workbook
    Dim wsCheck As Worksheet    ' sheet in the first workbook
    Dim wsOrderlog As Worksheet ' sheet in the second workbook

    ' address the first workbook and its sheet
    ' if this VBA-code is in the frist workbook, it's "ThisWorkbook"
    Set wb1 = ThisWorkbook
    Set wsCheck = wb1.Worksheets("Worksheet")

    ' check, if second workbook is already open
    For Each wb2 In Workbooks
        If wb2.Name = "Protective Packaging Order Log.xlsm" Then Exit For
    Next wb2

    ' if not already open, then open it, and address its sheet also
    If wb2 Is Nothing Then
        Set wb2 = Workbooks.Open( _
            Filename:="G:\General\COVERSHEET_Protective\Protective Packaging Order Log.xlsm", _
            Password:="PP", _
            WriteResPassword:="PP")
    End If
    Set wsOrderlog = wb2.Worksheets("orderlog")

    ' search a value from the first workbook's sheet within second workbook's sheet
    Dim FoundRow As Variant
    FoundRow = Application.Match(wsCheck.Range("G3").Value, wsOrderlog.Range("A:A"), 0)
    If IsNumeric(FoundRow) Then ' if found
        ' please adapt to your needs:
        wsOrderlog.Cells(FoundRow, 1).Font.Size = 14
        wsOrderlog.Cells(FoundRow, 9).Value = wsCheck.Range("I10").Value
        wsOrderlog.Cells(FoundRow, 10).Value = wsCheck.Range("I11").Value
    Else
        MsgBox "Sorry, the value in cell G3" & vbLf & _
            wsCheck.Range("G3").Value & vbLf & _
            "could not be found in orderlog column A."
    End If

    ' close the second workbook (Excel will ask, if to save)
    wb2.Close
End Sub
 类似资料:
  • 试图从当前工作簿“Create Report.xlsm”中复制工作表名称“Headings Explantions”,该工作簿打开到我要求打开的工作簿中,我得到了下标超出范围的错误

  • 我正试图将所有工作表(7张)从workbook1(wb1)复制到WB2。wb1包含命令按钮,但我不希望它们出现在我的新工作簿中。我正在使用循环将单个工作表从一个工作簿复制到另一个工作簿。但是复制到第二张时出错了。我使用的代码如下:- 循环第一次成功运行,但对于i=2,代码给出错误

  • 所以在COL D中,我必须只粘贴COL A和COL C相等的值,如果这些值不相等,则跳过或粘贴COL D中的任何东西 我写过类似这样的代码,但不幸的是它粘贴了一切!!

  • 我需要一个宏,它可以根据我选择的单元格从我所在的工作簿中复制整行。我已经可以这样做了,使用以下方法: 但是,我需要它将其(格式化和全部)粘贴到关闭的工作簿的第一个空行(基于B列)。R: \dasboards\wo。xlsm公司

  • 我面临的情况是,我必须将条件格式从一个Excel工作表复制到另一个。 这就是我尝试过的; 源和目标都是XSSF。 但是当我试图打开目标工作表时,excel显示一条消息,提示工作表中有一些错误,我要恢复它吗?如果单击“是”,工作表将打开,但条件格式不能正确应用。 修复 excel 后显示一条消息,例如; Excel能够通过修复或删除不可读的内容来打开文件 在这种情况下,我的条件格式就像如果单元格区域

  • 使用Google Sheets,我试图制作一个复制按钮,一旦点击它,就应该启动脚本代码,以便复制特定列中的一些值(例如,从特定行开始的20个特定单元格),并将它们粘贴到下一个空列中另一张纸(纸2)从特定的一行开始。 每次按下按钮,它都会将结果复制到工作表2中的下一个空列,这样就不会复制到上一个粘贴的结果上。 表1中这些单元格的值或文本:C4、C5、C6、C7、C8、C9、C10、C11、C12、C