【问题标题】:How do I search in another workbook and add to existing number in that other workbook?如何在另一个工作簿中搜索并添加到该另一个工作簿中的现有编号?
【发布时间】:2023-01-23 15:58:54
【问题描述】:

使用当前工作表(和当前工作簿)的值,我想在另一个工作簿中搜索,找到该值并更新属于该值的库存(将数字加在一起)。

我的代码:(下标超出范围错误)

Sub Upload()

Workbooks.Open "P:\Engineering\Stock Management\EngineerBookingSystem.xlsm"

cProd = Sheet1.Range("D6")
CAdd = Sheet1.Range("F6")

Dim wkb As Excel.Workbook
Dim wks As Excel.Worksheet

Set wkb = Excel.Workbooks("EngineerBookingSystem.xlsm")
Set wks = wkb.Worksheets("Sheet9")

LastRow = wks.Range(wks.Cells(Rows.Count, 1)).End(xlUp).Row

For i = 2 To LastRow
    If wks.Range(wks.Cells(i, 1)) = cProd Then
        'found it
        wks.Range(wks.Cells(i, 3)) = wks.Range(wks.Cells(i, 3)) + CAdd    
    End If
Next i

End Sub

我尝试了 YouTube 视频、Stack Overflow 问答,无论我尝试什么错误。

【问题讨论】:

  • 对于初学者,将 Workbooks.Open "P:\Engineering\Stock Management\EngineerBookingSystem.xlsm" 更改为 Set wkb = Workbooks.Open ("P:\Engineering\Stock Management\EngineerBookingSystem.xlsm")
  • wks.Range(wks.Cells(i, 1)) 更改为 wks.Cells(i, 1)wks.Range(wks.Cells(i, 3)) 也是如此。
  • 欣赏这些!但是,当我做出适当的更改时,它甚至在运行之前就出错了……

标签: excel vba


【解决方案1】:
Sub Upload()
    Dim wb As Workbook: Set wb = ThisWorkbook
    Dim ws As Worksheet: Set ws = wb.Sheets("Sheet1")
    cProd = ws.Range("D6")
    CAdd = ws.Range("F6")
    Dim wkb As Workbook
    Set wkb = Workbooks.Open("P:EngineeringStock ManagementEngineerBookingSystem.xlsm")
    Dim wks As Worksheet
    Set wks = wkb.Worksheets("Sheet9")
    Dim LastRow As Long: LastRow = wks.Cells(wks.Rows.Count, 1).End(xlUp).Row
    For i = 2 To LastRow
        If wks.Cells(i, 1) = cProd Then
            'found it
            wks.Cells(i, 3) = wks.Cells(i, 3) + CAdd
        End If
    Next i
End Sub

【讨论】:

    猜你喜欢
    • 2021-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-24
    • 1970-01-01
    相关资源
    最近更新 更多