EXCEL(查詢特定內容的單元格)

2021-09-29 18:26:18 字數 3001 閱讀 9113

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其實為我們提供了自動換行的功能,我們只需要啟動它就可以了 方法一在單元格中輸入內容時,或者單元格中已輸入內容,我們把游標定位到輸入內容要自動換行的位置...