【问题标题】:How to convert a basic excel function to be used in VBA?如何转换要在 VBA 中使用的基本 excel 函数?
【发布时间】:2019-10-15 14:14:44
【问题描述】:

我正在尝试在 VBA 中使用 VLOOKUP 在代码运行时在新插入的行中提供一个值。我使用“”的方法在搜索栏中输入VLOOKUP,而不是使用工作表功能。但是,我正在努力输入正确的公式。单元格编号未知,因此为什么我使用变量。

delivActivEnd 只是一个已定义的变量,用于查找所需的单元格编号。有谁知道如何正确地为 VBA 编写这个?

ws.Range("G" + CStr(invoicingStart + delivPos)) = "=VLOOKUP(=$C" + (CStr((delivActivEnd)) + "'Sub tasks'!B:T,16,False")

【问题讨论】:

  • 范围的公式属性将有助于删除= - ws.Range("G" + CStr(invoicingStart + delivPos)).Formula = "=VLOOKUP($C" + (CStr((delivActivEnd)) + "'Sub tasks'!B:T,16,False") 之一
  • 不幸的是仍然得到应用程序定义或对象定义错误
  • 替换公式中的+&,后者用于VBA中字符串的拼接。
  • 仍然产生错误
  • 您是否尝试过从副本中找到解决方案?

标签: excel vba excel-formula


【解决方案1】:
  • .Formula 是公式的属性;
  • = 应该只有一次,并且应该在公式之前
  • & 是 VBA 中连接的操作数;

试试这个:

Sub Testme()

    Dim delivActivEnd As Long
    delivActivEnd = 42
    ActiveCell.Formula = "=VLOOKUP(C" & delivActivEnd & ",'Sub tasks'!B:T,16,False)"

End Sub

【讨论】:

  • 非常感谢,工作完美!如果我要执行一个 IF 函数,并且如果测试是 True 希望它显示“OK”,我将如何做,因为它认为“”是语句的结尾
  • @Lawrence Forster - 试一试,放一点“”,看看发生了什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多