在我的Excel電子表格中,我有兩列。#VALUE Excel VBA函數錯誤
- A包含值爲'是','否'或'可能'的字符串。
- B包含在每年的字符串。
我需要一個函數來確定B列,其中在A列中的等值是「是」一年出現的次數。
目前,我有以下代碼:
Function CountIfYearAndValue(Rng As Range, YNM As String, Year As String) As Integer
Dim count As Integer
count = 0
For Each c In Rng.Cells
If (StrComp(Abs(c.Value), Year, vbTextCompare) = 0) And (StrComp(Cells(c.Row, A), YMN, vbTextCompare) = 0) Then count = count + 1
Next
CountIfYearAndValue = count
End Function
這段代碼的想法是,我們通過在給定的(在B列的範圍)範圍內的每一個細胞循環,並檢查一年等於Year
參數。如果A列上的等效單元格等於YNM
參數,我們會增加count
變量。
出於某種原因,當我使用下面的參數驗證碼不起作用:
=CountIfYearAndValue('Years'!B1:B7,"Yes","Year 7")
它只是做了#VALUE
錯誤並拒絕顯示任何結果。
任何幫助將不勝感激。
編輯:兩個單元格中的所有值都是未格式化的數據類型('常規'),沒有單元格爲空白。
Kezz101,@mehow是絕對正確的,最好使用「COUNTIF」。但是,如果你想知道你的解決方案爲什麼不起作用 - 這是因爲1)'Cells(c.Row,A)'。你應該爲'A':'Cells(c.Row,「A」)'和2)在你正在使用'YNM As String'的函數參數中添加引號,但是在你使用'StrComp(Cells(c.Row ,A),YMN,vbTextCompare)'。請注意,有'YMN'和'YNM'。我建議你使用'Option Explicit'來避免這種錯誤 –
@simoco感謝您的迴應!我現在使用了'COUNTIF'函數,但我很想知道它爲什麼仍然不起作用。我實施了您的更改,但仍然無法使用相同的「#VALUE」錯誤。 – Kezz101
無法想出它,因爲我沒有看到你的更新代碼,但是這個改變你的功能適用於我 –