【问题标题】:excel function syntax calling errorexcel函数语法调用错误
【发布时间】:2015-05-30 17:44:06
【问题描述】:

我已经创建了这个函数:

Public Function getLastCellValue(ByVal row As Integer, ByVal column As String) As String
If (Cells(row, column).Value = "") Then
    getLastCellValue = getLastCellValue(row - 1, column)
Else: getLastCellValue = Cells.Item(row, column).Value
End If
End Function

当我在单元格中使用它时:

=getLastCellValue(1,"C")  

Excel 告诉我该函数包含错误并关注第二个参数:"C"

我快疯了,因为我不明白这个错误。

【问题讨论】:

  • 确保您的 Excel 语言使用逗号 (,) 来分隔函数参数;如果你的名字告诉我你的国籍,我猜你使用的是意大利/西班牙系统(这意味着你应该用半列分隔输入(;

标签: vba excel excel-udf


【解决方案1】:

Cells(row, column) 需要数值参数值。如果您的意思是引用单元格地址(例如“A1”),那么改用 Range 可能会更简单。

也就是说,一旦你让它按预期工作,我强烈建议将此实现移交给Code Review,...我有几件事要指出;)


您的代码按原样在我的机器上运行。我的赌注是@Matteo's comment

确保您的 Excel 语言使用逗号 (,) 分隔函数参数;如果你的名字告诉我你的国籍,我猜你使用的是意大利/西班牙系统(这意味着你应该用半列(;)分隔输入

【讨论】:

  • 错了,字母也是。
  • Cells() 可以使用列的字符串名称。当我看到其他人在这块板上使用它时,我也不认为它会起作用,直到我尝试过。我使用 2007 年作为参考。
  • @MatteoNNZ IntelliSense 调用参数[RowIndex][ColumnIndex]...该死的微软!
  • 另外,函数一开始就崩溃,没有进入代码。我猜他应该用半列(;)而不是逗号(,)分隔值,它应该与操作系统有关
  • 问题是逗号。函数的正确使用需要我的 Excel 2011 for Mac 意大利语版的分号。 MatteoNNZ 你赢了!
猜你喜欢
  • 2018-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-09
相关资源
最近更新 更多