如何寫一個巨集,可使選項空白時為不選,而不是選空白?

2009-11-24 9:02 pm


如果我有三個選項,輸入姓名 Cname,或電話 Phone,或生日 BthDate,然後列出搜尋結果。 如果三個選項都空白就會跳出程式。 缺一個或兩個選項是允許的。也就是說可以只輸入姓名 Cname,或電話 Phone,或生日 BthDate;也可能同時輸入任兩項或三項,,然後要求列出搜尋結果。 其中之空白選項就表示不用選擇。比如輸入姓名"張三"及生日"80/8/8",電話為空白,則應列出所有生日為80/8/8的張三所打過的電話。 我試著修改一位先進提供的程式(其他用途的)作為Excel 巨集的一部份。當三個選項CName, Phone and BthDate 都填上時作用良好,但是若缺了其中之一就會去搜尋不存在的"空白"。請問我應如何解決這個問題?謝謝!

能繼續用下面的巨集嗎?還是要重寫?
Dim Cdata(1 To 50, 1 To 6)
Dim Rdata%
CName = Cells(2, 3)
Phone = Cells(2, 4)
BthDate = Cells(2, 5)

For A = 5 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(A, 3) = CName And Cells(A, 4) = Phone And Cells(A, 5) = BthDate Then
Countcolumn = Cells(A, Columns.Count).End(xlToLeft).Column
Rdata = Rdata + 1
For b = 1 To Countcolumn
Cdata(Rdata, b) = Cells(A, b)
Next
End If
Next
[h4].Resize(A, 6) = Cdata

感謝協助!

回答 (2)

2009-11-25 4:43 pm
✔ 最佳答案
用您的資料改一下
Dim Cdata(1 To 50, 1 To 6)
Dim Rdata%
For A = 5 To Cells(Rows.Count, 1).End(xlUp).Row
CName = Cells(2, 3)
Phone = Cells(2, 4)
BthDate = Cells(2, 5)

If CName = "" Then CName = Cells(A, 3)
If Phone = "" Then Phone = Cells(A, 4)
If BthDate = "" Then BthDate = Cells(A, 5)

If Cells(A, 3) = CName And Cells(A, 4) = Phone And Cells(A, 5) = BthDate Then
Countcolumn = Cells(A, Columns.Count).End(xlToLeft).Column
Rdata = Rdata + 1
For b = 1 To Countcolumn
Cdata(Rdata, b) = Cells(A, b)
Next
End If
Next
[h4].Resize(A, 6) = Cdata
2014-09-20 9:54 am
到下面的網址看看吧

▶▶http://qoozoo201409150.pixnet.net/blog


收錄日期: 2021-04-27 17:08:20
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20091124000015KK03100

檢視 Wayback Machine 備份