vba - CountA 返回 0,WorksheetFunction.CountA 返回 1

标签 vba excel excel-formula excel-2010

在调试窗口中,以下表达式均返回 1。

Application.WorksheetFunction.CountA(Cells(4 + (i - 1) * rows_per_record, 28) & ":" & Cells(5 + (i - 1) * rows_per_record, 58))

Application.WorksheetFunction.CountA(ThisWorkbook.Sheets(n).Cells(4 + (i - 1) *  rows_per_record, 28) & ":" & ThisWorkbook.Sheets(n).Cells(5 + (i - 1) * rows_per_record, 58))

在本例中,范围为 AB60:BF61,这在调试窗口中得到确认。

在工作表中,当脚本暂停时,我在单元格中输入 =CountA(AB60:BF61),结果为 0,这就是它应该的结果。

任何解释将不胜感激。

Windows 7、Excel 2010

最佳答案

你的语法错误。

正确语法:

Application.WorksheetFunction.CountA (范围(单元格(4 + (i - 1) * rows_per_record, 28), 单元格(5 + (i - 1) * rows_per_record, 58)))

您的代码正在计算每个非空字符串的参数。唯一的参数是由两个空单元格值包围的冒号。

Application.WorksheetFunction.CountA(ThisWorkbook.Sheets(n).Cells(4 + (i - 1) * rows_per_record, 28) & ":"& ThisWorkbook.Sheets(n).Cells(5 + ( i - 1) * rows_per_record, 58))

enter image description here

关于vba - CountA 返回 0,WorksheetFunction.CountA 返回 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39240958/

相关文章:

excel - 从 MS EXCEL 中无任何条件地从顶部或末尾删除行

excel - 高级 Excel Sumif(可能需要 VBA)

javascript - 在 CSV/Excel 文件的单元格上运行 javascript 函数

Excel VBA 将图表轴设置为对数

excel - 如何确定AND函数Excel的行

arrays - 如何使用vba在逗号之间分割字符串并将每个字符串存储在数组变量中

excel - 没有工作周Excel的日期和时间之间的差异

vba - 自动填充一系列单元格

ms-access - 将参数传递给 vba 函数时收到错误消息 : "Argument not optional (Error 449)"

excel - 如何遍历字母和数字序列 (I30112-J01111)