【发布时间】:2014-07-22 10:15:36
【问题描述】:
我尝试在我的宏中使用以下 sumproduct 函数:
=SUMPRODUCT(--(LEN('Data Weekly Classic'!B:B)>1))-1
数据表,以及用于搜索更改的列,所以我使用变量。
我的代码:
Public commentsheet As Worksheet
Public commentcolumn As String
Public commentcell As String
Public rownumber As Integer
Private Sub Workbook_Open()
Set commentsheet = ThisWorkbook.Sheets("Data Weekly Classic")
commentcolumn = Application.WorksheetFunction.VLookup(Sheet4.Range("A2").Value, Sheet8.Range("P1:Q8"), 2, 0)
rownumber = 2
commentcell = commentcolumn & rownumber
End Sub
Sub broken()
Dim commentstotalrange As String
commentstotalrange = commentcolumn & ":" & commentcolumn
Sheet4.Range("D13").Value = Application.WorksheetFunction.SumProduct(--(WorksheetFunction.Len(commentsheet.Range(commentstotalrange) > 1)) - 1)
End Sub
知道为什么我会收到错误 13:此行的类型不匹配吗?:
Sheet4.Range("D13").Value = Application.WorksheetFunction.SumProduct(--(WorksheetFunction.Len(commentsheet.Range(commentstotalrange) > 1)) - 1)
首先我把它写成:
Sheet4.Range("D13").Value = Application.WorksheetFunction.SumProduct(--(Len(commentsheet.Range(commentstotalrange) > 1)) - 1)
在“LEN”之前没有工作表函数。它产生了同样的错误。我在“LEN”之前添加了工作表函数,因为我想,也许我必须告诉 VBA LEN 也是 excel LEN 函数。但是错误并没有改变。
【问题讨论】:
-
您可以尝试使用
Evaluate或[...]代替Application.WorksheetFunction吗?