将值粘贴到另一个表单中的匹配单元格

请帮忙! 我有一个问题,我一直坚持过去的一天。

我需要将数据从一张纸传送到另一张工作簿中的另一张纸上。 输出行对应于input列a中的值,输出列对应于input图表列B中的date。

我以前已经将input/输出工作簿/图表分别作为wbin,wbout,sheetin,sheetout调暗。 任何人都可以帮忙看看我的问题在哪里? 我得到的错误是运行时错误“9”:下标在复制目标行的范围之外。

Windows(wbin).Activate Sheets(sheetin).Select iMaxRow = 5000 Dim subj1 As String Dim subj2 As String For iRow = 1 To iMaxRow subj1 = Range("B" & iRow).Text subj2 = Range("A" & iRow).Text With Workbooks(wbin).Sheets(sheetin).Cells(iRow, 3) 'On Error Resume Next .Copy Destination:=Workbooks(wbout).Worksheets(sheetout).Cells(WorksheetFunction.Match(subj2 & "*", _ Workbooks(wbout).Sheets(sheetin).Columns(2), 0) & _ WorksheetFunction.Match(subj1, Workbooks(wbout).Sheets(sheetin).Rows(2), 0) + 1) End With Next iRow 

现在,我已经禁用错误恢复下一步。 此外,input列a有4个数字后面跟着string,而相应的输出行头只有4个数字,所以我试着用通配符进行匹配。

任何意见将非常感激!

这是解决您的问题的正确方法。 您需要使用“Range.Find”而不是“WorksheetFunction.Match”。

 Dim dateHeader as Range, foundCell as Range Set dateHeader = Workbooks(wbout).Worksheets(sheetout).Rows(2) Set foundCell = dateHeader.Find(subj1) .Copy Intersect(foundCell.EntireColumn, Workbooks(wbout).Worksheets(sheetout).Rows(subj2))