如何根据单元格值将数据粘贴到特定行?

问题描述 投票:0回答:1

我对 VBA 还很陌生,所以也许这是非常基础的,但我正在为此绞尽脑汁。

我有一个数据库工作表。每个月我们都会收到来自工厂的多个计划,我将其粘贴到工作簿中进行分析。但我想自动化。 B 列中列出了数据输入的月份。我现在使用下面的行来过滤当前月份:

Worksheets("Production Plan Input").Range("A1:BQ290").AutoFilter Field:=2, Criteria1:=xlFilterThisMonth, Operator:=xlFilterDynamic

这有效。

但现在我想将筛选范围的 C 列中的产品组与具有不同计划的工作簿进行匹配。

为此,我需要将工作簿“产品类型 1”工作表“月度计划”中的范围 B3:Y3 复制到工作簿“生产计划分析”、工作表“计划输入”的 AD:BA 列,但该行取决于产品类型。

为了供您参考,我粘贴了下面的工作簿(调整后的)片段: workbook

有人知道解决这个问题的最佳方法吗? 谢谢!


    Dim lastRow As Long
    Dim ws As Worksheet
    Dim i As Long

ws = ThisWorkbook.Sheets("Production Plan Input")

lastRow = ws.Cells(ws.Rows.Count, "C").End(xlUp).Row
    For i = 1 To lastRow
    If ws.Cells(i, "C").Value = "exe" Then
    ws.Range("AD" & i & ":BA" & i).Value = Paste
    End If
    

我收到错误消息“编译错误:没有下一步”

vba excel-2016 excel-365
1个回答
0
投票

要消除错误:

只需更正您的代码:

 Public Sub Test()
    Dim lastRow As Long
    Dim ws As Worksheet
    Dim i As Long

    ws = ThisWorkbook.Sheets("Production Plan Input")

    lastRow = ws.Cells(ws.Rows.Count, "C").End(xlUp).Row
    For i = 1 To lastRow
        If ws.Cells(i, "C").Value = "exe" Then
            ws.Range("AD" & i & ":BA" & i).Value = Paste
        End If
    Next ' <= here what is missing
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.