標題:
CountIf問題
[打印本頁]
作者:
basarasy
時間:
2010-10-21 17:52
標題:
CountIf問題
Sub MYts()
A = 1
If WorksheetFunction.CountIf(Range("A1:A10,C1:D3"), A) > 0 Then
MsgBox A + 1
Else
MsgBox A
End If
End Sub
複製代碼
請問大大為什麼不可以Range("A1:A10,C1
3")?
作者:
dechiuan999
時間:
2010-10-21 18:27
大大你好:
小弟試著修改如下即可
請試試
If Application.WorksheetFunction.CountIf(Range("A1:A10", "C1
3"), A) > 0 Then
或是
If Application.CountIf(Range("A1:A10", "C1
3"), A) > 0 Then
也可以。
這是小弟常常看到版主大大使用的語法。
至於差異為何小弟也還不是很了解。
還要請版主大大說明了。
作者:
basarasy
時間:
2010-10-21 19:30
回復
2#
dechiuan999
謝謝你.
我試過是不行的.
作者:
Hsieh
時間:
2010-10-21 20:03
本帖最後由 Hsieh 於 2010-10-21 20:12 編輯
回復
3#
basarasy
你在工作表中輸入公式
=COUNTIF((A1:A10,C1:D3),1)
得到的是#VALUE錯誤值
因為COUNTIF的Range參數要連續儲存格不可以示2個範圍的聯集
測試看看Rang位址字串不同得到甚麼不同情形
Sub TestAddress()
Set Rng = Range("A1:A10")
Range(Rng.Address).Select
MsgBox Rng.Address
Set Rng = Range("A1:A10", "C1:D3")
Range(Rng.Address).Select
Range(Rng.Address).Select
MsgBox Rng.Address
Set Rng = Range("A1:A10,C1:D3")
Range(Rng.Address).Select
MsgBox Rng.Address
Set Rng = Union(Range("A1:A10"), Range("C1:D3"))
Range(Rng.Address).Select
MsgBox Rng.Address
Set Rng = Range("A1:A10 A4:A10")
Range(Rng.Address).Select
MsgBox Rng.Address
End Sub
複製代碼
作者:
basarasy
時間:
2010-10-21 20:10
回復
4#
Hsieh
明日了.
那只好用
If Application.CountIf(Range("A1:A10"), A) > 0 Or Application.CountIf(Range("C1
3"), A) > 0 Then
作者:
GBKEE
時間:
2010-10-21 21:21
回復
5#
basarasy
變通一下
Sub Ex()
Dim R, A, B
A = 1
For Each R In Range("A1:A10,C1:D3").Areas
B = B + WorksheetFunction.CountIf(R, A)
Next
If B > 0 Then MsgBox B
End Sub
複製代碼
作者:
basarasy
時間:
2010-10-21 23:15
本帖最後由 basarasy 於 2010-10-22 00:16 編輯
回復
6#
GBKEE
謝謝大大.
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)