【问题标题】:Syntax error in vba excel code [duplicate]vba excel代码中的语法错误[重复]
【发布时间】:2017-07-24 17:20:00
【问题描述】:

我在我的 Excel 工作表中添加了一个按钮,用于添加具有上述公式的员工。

以下代码中的前两个公式完美运行,但最后一个给出语法错误。

我的代码是:

Private Sub AddEmployee_Click()

    Sheets("Sheet1").Range("A35").Select
    ActiveCell.EntireRow.Insert shift:=xlDown

    Sheets("Sheet1").Range("A35:AJ35").Select
    Selection.Borders.Weight = xlThin

    Sheets("Sheet1").Range("AJ35").Select
    ActiveCell.Formula = "=SpeDays(C35:AG35,9)"

    Sheets("Sheet1").Range("AI35").Select
    ActiveCell.Formula = "=IF(AI35>=10,10,AI35)"

    Sheets("Sheet1").Range("AH35").Select
    ActiveCell.Formula = "=COUNTIF(C35:AG35,">=4000")"

【问题讨论】:

  • 你的错误只在最后一个吗?
  • 附带说明:您可以删除 selectactivecell 并加入这两行 - Sheets("Sheet1").Range("A35").EntireRow.Insert shift:=xlDown

标签: vba excel


【解决方案1】:

问题在于公式中的引号。使用双引号作为解决方案:

ActiveCell.Formula = "=COUNTIF(C35:AG35, "">=4000"")"

【讨论】:

  • 但是excel文件返回公式是这样的:=IF(AI36>=10,10,AH36)
  • 它显示应用程序定义或对象定义错误
  • IT 工程兄弟。我犯了一些错误,现在确定。谢谢
【解决方案2】:

使用也可以使用下面的代码

Activecell.Formula = "=Countif(C35:AG35," & chr(34) & ">=4000" & chr(34) & ")" 

输出将是:

=Countif(C35:AG35,">=4000")

【讨论】:

  • 它显示应用程序定义或对象定义错误
  • @PratyushKumar - 有错字,将AG3,5 更改为AG35,
  • 有没有办法为自动确定的最后一行应用相同的代码来代替 A35 或 AJ35....
  • LastRow = ActiveSheet.Cells(.Rows.Count, "A").End(xlUp).Row + 1 为此,您需要有一个固定的行,在 A 列或 AJ 中柱子。谢谢
  • @nishit dey- 为此,我只需将 $ 与 A 或 AJ 放在一起。我说得对吗
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-21
相关资源
最近更新 更多