使用VBA将包含Vlookups的范围粘贴为值,返回重复的第一个值

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

第一次发布和相对较新的VBA。

在A列中,我有一个Invoice #s列表,B列是一个vlookup,它返回哪个销售渠道产生了发票(公司,零售等)。我正在尝试编写一个VBA宏,将这些值复制并粘贴到另一个工作表中。当我这样做时,它会将第一个vlookup中的值粘贴到所有行中。(行A没有任何问题)任何想法为什么?

'Finds Last Row of Raw Data
With WB1
Worksheets("Raw Data").Select
    lRow = Cells.Find(What:="*", _
                After:=Range("A1"), _
                LookAt:=xlPart, _
                LookIn:=xlFormulas, _
                SearchOrder:=xlByRows, _
                SearchDirection:=xlPrevious, _
                MatchCase:=False).Row
End With

'Copy and Paste Department info 
Worksheets("Raw Data").Range("GF1:GF" & lRow).Copy
Worksheets("DataForReport").Range("B1").PasteSpecial xlPasteValues

这是我正在研究的更大宏的一小部分。如果您需要更多代码,请告诉我,我可以发布更多的代码。感谢您的时间和帮助!

excel vba excel-vba vlookup
1个回答
0
投票

在两列中不是您的来源吗?

你只是复制列“GF”:Worksheets("Raw Data").Range("GF1:GF" & lRow).Copy

并将其粘贴到:Worksheets("DataForReport").Range("B1").PasteSpecial xlPasteValues

你的数据源是什么? GF1:GG&lRow?

您的“使用WB1 ...结束”在该代码中似乎无用。

试试:

'Finds Last Row of Raw Data
    lRow = Worksheets("Raw Data").usedrange.specialcells(xlcelltypelastcell).row
'Copy and Paste Department info 
    Worksheets("Raw Data").Range("GF1:GG" & lRow).Copy
    Worksheets("DataForReport").Range("B1").PasteSpecial xlPasteValues

并根据您的需求调整范围。

© www.soinside.com 2019 - 2024. All rights reserved.