带复制/粘贴的Vlookup-VBA
我是VBA的新手,仍然在代码中摸索 我想在IF语句中创建一个Vlookup。我想先检查制造商(单元格B11),然后使用所选设备(单元格C11)在单独的选项卡上查找一个范围(“列表”,范围O3:Q11),并将$值(单元格P3)复制/粘贴到新单元格(单元格L11)的初始选项卡上。 正如我所说,我对VBA相当陌生,但以下是我尝试过的一些代码:带复制/粘贴的Vlookup-VBA,vba,excel,if-statement,vlookup,Vba,Excel,If Statement,Vlookup,我是VBA的新手,仍然在代码中摸索 我想在IF语句中创建一个Vlookup。我想先检查制造商(单元格B11),然后使用所选设备(单元格C11)在单独的选项卡上查找一个范围(“列表”,范围O3:Q11),并将$值(单元格P3)复制/粘贴到新单元格(单元格L11)的初始选项卡上。 正如我所说,我对VBA相当陌生,但以下是我尝试过的一些代码: Sub ServiceCosts() Dim SamsungServ As Range Dim Manufacturer As Range Dim Devic
Sub ServiceCosts()
Dim SamsungServ As Range
Dim Manufacturer As Range
Dim Device As Range
Dim MonoSamService As String
Set SamsungServ = Sheets("List").Range("O3:Q11")
Set Manufacturer = Range("B11")
Set Device = Range("C11")
If Manufacturer = "Samsung" Then
MonoSamService = Application.WorksheetFunction.VLookup(Device, SamsungServ, 2, False)
ActiveCell.Copy
Sheets("Finance Calculations").Range("L11").Select
ActiveCell.PasteSpecial Paste:=xlPasteValues
Else
MsgBox "Please Select Device"
End If
End Sub
任何帮助都将不胜感激
谢谢在我看来,你似乎认为MonoSamService是“ActiveCell”,除非你明确告诉它,否则它不会是 相反,我会这样做: MonoSamService=Application.WorksheetFunction.VLookup(设备,SamsungServ,2,False) 表(“财务计算”)。范围(“L11”)。价值=单一服务
例如,将财务计算中单元格的值设置为您从vlookup中获取的值。您尝试的代码有什么问题?它没有完成查找,只是将单元格C11中的设备复制到sheetVLookup()上的单元格L11。vlookup()是Excel工作表函数。您可能不需要VBA来实现您的目标;只需使用VLookup()和IF()工作表函数即可完成。我同意@AlexBell。有时,使用VBA而不是通过正常的内置Excel公式实现自动化并不值得。我可以通过Excel vlookup和if函数使其完全按照我所需的方式工作,但是其中一个制造商选项是“其他”,我希望进一步编码,以指定如果选择了此选项,将有一列未隐藏,用户可以在其中输入“其他”设备的$value。这部分会通过代码来完成吗?共有5家制造商,每个制造商拥有约5-10台设备。