【问题标题】:Vlookup with Copy/Paste - VBA使用复制/粘贴的 Vlookup - VBA
【发布时间】:2014-11-28 04:49:03
【问题描述】:

我对 VBA 还很陌生,但仍在寻找解决代码的方法!

我想在 IF 语句中创建 Vlookup。我想先检查制造商 (Cell B11),然后使用所选设备 (Cell C11) 在单独的选项卡上查找范围 ("List",范围 O3:Q11) 并将 $ 值 (Cell P3) 复制/粘贴到新单元格 (Cell L11) 的初始选项卡上。 正如我所说,我对 VBA 还很陌生,但这里有一些我尝试过的代码:

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

非常感谢任何帮助!!!

谢谢

【问题讨论】:

  • 您尝试的代码有什么问题?
  • 它没有完成查找,它只是将单元格 C11 中的设备复制到工作表上的单元格 L11
  • VLookup() 是一个 Excel 工作表函数。您可能不需要 VBA 来实现您的目标;只需使用 VLookup() 和 IF() 工作表函数即可完成。
  • 我同意@AlexBell。有时不值得使用 VBA 进行自动化,而是使用普通的内置 Excel 公式。
  • 我可以通过 excel vlookup 和 if 函数让它完全按照我的需要工作,但是制造商选项之一是“其他”,我想进一步编码以指定是否选择了它,会有一个不隐藏的列,用户可以在其中输入“其他”设备的 $ 值。这部分会通过代码来完成吗?总共有 5 家制造商,每个制造商大约有 5-10 台设备。

标签: vba excel if-statement vlookup


【解决方案1】:

在我看来,您假设 MonoSamService 是“ActiveCell”,除非您明确告诉它,否则它不会是。

相反,我会这样做:

MonoSamService = Application.WorksheetFunction.VLookup(Device, SamsungServ, 2, False) Sheets("财务计算").Range("L11").Value = MonoSamService

即。将 Finance Calculations 中单元格的值设置为您从 vlookup 中获取的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多