5-1 使用find方法查詢特定資訊
查詢匹配的值:
查詢所有匹配的值,並標出:
sub findnextcell()
dim strfind as string
dim rng as range
dim findaddress as string
strfind = inputbox("請輸入要查詢的值:")
if len(trim(strfind)) > 0 then
with sheet1.range("a:a")
.interior.colorindex = 0
set rng = .find(what:=strfind, _
after:=.cells(.cells.count), _
lookin:=xlvalues, _
lookat:=xlwhole, _
searchorder:=xlbyrows, _
searchdirection:=xlnext, _
matchcase:=false)
if not rng is nothing then
findaddress = rng.address
dorng.interior.colorindex = 6
set rng = .findnext(rng)
loop while not rng is nothing _
and rng.address <> findaddress
end if
end with
end if
set rng = nothing
end sub
find方法作用:在指定的單元格區域中查詢包含引數指定資料的單元格,若找到符合條件的資料,則返回包含該資料的單元格;若未發現相匹配的資料,則返回nothing。該方法返回乙個range物件,在使用該方法時,不影響選定區域或活動單元格。
find方法的語法:
《單元格區域》.find (what,[after],[lookin],[lookat],[searchorder],[searchdirection],[matchcase],[matchbyte],[searchformat])
《單元格區域》.find (要查詢的資料,開始查詢的位置,查詢的範圍型別,完全匹配還是部分匹配,行列方式查詢,向前向後查詢,區分大小寫,全形或半形,查詢格式)
[引數說明]
(1)《單元格區域》,必須指定,返回乙個range物件。
(2)引數what,必需指定。代表所要查詢的資料,可以為字串、整數或者其它任何資料型別的資料。對應於「查詢與替換」對話方塊中,「查詢內容」文字框中的內容。
(3)引數after,可選。指定開始查詢的位置,即從該位置所在的單元格之後向後或之前向前開始查詢(也就是說,開始時不查詢該位置所在的單元格,直到find方法繞回到該單元格時,才對其內容進行查詢)。所指定的位置必須是單元格區域中的單個單元格,如果未指定本引數,則將從單元格區域的左上角的單元格之後開始進行查詢。
(4)引數lookin,可選。指定查詢的範圍型別,可以為以下常量之一:xlvalues、xlformulas或者xlcomments,預設值為xlformulas。對應於「查詢與替換」對話方塊中,「查詢範圍」下拉框中的選項。
(5)引數lookat,可選。可以為以下常量之一:xlwhole或者xlpart,用來指定所查詢的資料是與單元格內容完全匹配還是部分匹配,預設值為xlpart。對應於「查詢與替換」對話方塊中,「單元格匹配」核取方塊。
(6)引數searchorder,可選。用來確定如何在單元格區域中進行查詢,是以行的方式(xlbyrows)查詢,還是以列的方式(xlbycolumns)查詢,預設值為xlbyrows。對應於「查詢與替換」對話方塊中,「搜尋」下拉框中的選項。
(7)引數searchdirection,可選。用來確定查詢的方向,即是向前查詢(xlprevious)還是向後查詢(xlnext),預設的是向後查詢。
(8)引數matchcase,可選。若該引數值為true,則在查詢時區分大小寫。預設值為false。對應於「查詢與替換」對話方塊中,「區分大小寫」核取方塊。
(9)引數matchbyter,可選。即是否區分全形或半形,在選擇或安裝了雙位元組語言時使用。若該引數為true,則雙位元組字元僅與雙位元組字元相匹配;若該引數為false,則雙位元組字元可匹配與其相同的單位元組字元。對應於「查詢與替換」對話方塊中,「區分全形/半形」核取方塊。
(10)引數searchformat,可選,指定乙個確切型別的查詢格式。對應於「查詢與替換」對話方塊中,「格式」按鈕。當設定帶有相應格式的查詢時,該引數值為true。
(11)在每次使用find方法後,引數lookin、lookat、searchorder、matchbyte的設定將儲存。如果下次使用本方法時,不改變或指定這些引數的值,那麼該方法將使用儲存的值。
在vba中設定的這些引數將更改「查詢與替換」對話方塊中的設定;同理,更改「查詢與替換」對話方塊中的設定,也將同時更改已儲存的值。也就是說,在編寫好一段**後,若在**中未指定上述引數,可能在初期執行時能滿足要求,但若使用者在「查詢與替換」對話方塊中更改了這些引數,它們將同時反映到程式**中,當再次執行**時,執行結果可能會產生差異或錯誤。若要避免這個問題,在每次使用時建議明確的設定這些引數。
5-2 使用like運算子進行模式匹配查詢
sub rnglike()
dim rng as range
dim r as integer
r = 1
sheet1.range("a:a").clearcontents '清理sheet1中該列的內容
for each rng in sheet2.range("a1:a40") '遍歷sheet2中的待查詢列的內容
if rng.text like "*g*" then '用like函式進行模糊查詢,此處模糊查詢的字段可以改為輸入
cells(r, 1) = rng.text '將查詢的結果賦值給sheet1的單元格
r = r + 1
end if
next
set rng = nothing
end sub
excel 更改單元格內容
新建乙個excel工作薄,按alt f11 插入乙個模組,將下面的 複製進去,然後執行 快捷鍵f5 worksheets 1 1是你要操作的sheet,注意了。sub test dim str dim i,j i 1 j 1 for r 1 to worksheets 1 usedrange.row...
excel單元格內容合併
這幾天在整理資料,有時候資料都在 的不同單元格中,想把兩格內容合併為一格,於是驗證了兩種方法 方法一 1 在b1輸入公式 a1 b1 2 做完第一步後,選中b1後,滑鼠移到單元格右下出現 符號是下拉,就能得到結果,如圖 方法二 1 在b1輸入公式 a1 b1 2 做完第一步後,選中b1後,滑鼠移到單...
EXCEL單元格內容自動換行
在工作中,我們常常會碰到這樣的問題 在單元格中輸入內容比較多,而內容又不會自動換行,導致後面的單元格內容被前面的所遮蓋 如何解決這個問題呢,excel其實為我們提供了自動換行的功能,我們只需要啟動它就可以了 方法一在單元格中輸入內容時,或者單元格中已輸入內容,我們把游標定位到輸入內容要自動換行的位置...