Excel使用VBA巨集查詢包含指定內容的值

2022-05-10 01:35:24 字數 5593 閱讀 7510

1樓:

方法1,用篩選裡面的包含 輸入2002* 就可以篩選出來方法2,用輔助列寫公式=left(f3,4) 同樣可以篩選出來

方法3,用vba寫一串**

方法4,寫陣列公式

由上到下為由易變難

2樓:魚木混豬喲

sub main()

x = range("a65536").end(xlup).rowredim arr(1 to x, 1 to 5)brr = range("a1:

e" & x)for i = 2 to ubound(brr)if left(cells(i, 5).value, 4) = "2002" then

k = k + 1

for j = 1 to 5

arr(k, j) = brr(i, j)next j

end if

next i

range("a1:e1").copy sheet2.range("a1:e1")

sheet2.range("a2").resize(k, 5) = arr

end sub

excel怎樣用vba查詢指定內容並返回值

3樓:眯住眼串針

g2輸入公式

=if(left(e2,4)*1=2002,"yes","")下拉對g列進行自動篩選

將篩選結果直接複製貼上到sheet2

刪掉不要的列即可

4樓:匿名使用者

假設圖1在sheet1,圖2在sheet2,請參考

sub test ()

rowcount=sheets(1).[e90000].end(xlup).row

for i =1 to rowcount

if sheets(1).range("e" & i).value like "*2002*" then

sheets(2).range("a" & i).value=sheets(1).range("b" & i).value

sheets(2).range("b" & i).value=sheets(1).range("d" & i).value

end if

next

end sub

5樓:匿名使用者

這個必須用vba?函式就可以輕易做到了啊

在excel中如何用vba來實現查詢特定的字串?

6樓:很多很多

1、首先bai開啟需要編輯的excel**,du進入到編zhi輯的的頁面中。

2、然後在彈dao出來的視窗

回中,滑鼠右鍵答單擊工作表,選擇開啟「檢視**」。

3、然後在彈出來的視窗中,點選輸入**:

sub aaa()

dim i as long

for i = 1 to 1000 '行 範圍,自己修改if instr(range("a" & i), "invalidstatus") > 0 then

range("a" & i).font.color = vbredend if

next

end sub

4、然後進行儲存,點選執行就完成了。

7樓:匿名使用者

sub aaa()

dim i as long

for i = 1 to 1000 '行 範圍bai,自己修

du改if instr(range("a" & i), "invalidstatus") > 0 then

range("a" & i).font.color = vbredend if

next

end sub

執行後含有這zhi個字dao

符的單元格

內字型為紅容色。

【excel vba】在a列中搜尋包含特定內容的單元格,查詢它右邊的單元格的內容

8樓:匿名使用者

你是a2裡邊也是 滿?或者其他位置還有 滿 並不是你圖上的 只有a1 有滿?

要知道find 的方法 你使用的引數 預設是 從左上角a1 之後開始的 所以 a2中 有滿足條件的就不會顯示找到a1 只有僅僅a1 一個單元格中 有 滿 才會左後搜尋到………………即a1是最後一個搜尋的單元格,在沒有指定開始位置的時候!

刪除其他單元格 中的 滿 僅僅保留a1 中有 就可以找到了……你的這個搜尋 沒有實際使用意義!因為 只能找到a1 之後的第一個單元格中滿足條件的……所以 根據你的需求 你要改變一下方法……避開第一行 資料就能按著你的意思來找到第一個滿足條件的了……

祝你快樂!

9樓:匿名使用者

function myfun(rng as range,finstr as string) as string

on error goto l_end

myfun = rng.find(finstr,lookin:=xlvalues,lookat:=xlwhole).address

exit function

l_end:

myfun=0

end function

'主函式

sub test()

dim addr1 as string

addr1 = myfun(range("a:d"),"滿")if addr1 = 0 then

msgbox("沒找到")

else

msgbox("訂單號" & range(addr1).offset(0,1).value & "左邊有 滿")

end if

end sub

vba excel如何在工作表區域內查詢某個值,發回這個值所在的行號、列號

10樓:平陽虎

sub 查詢()

for each rng in range("a1:d3")if rng = 7 then

a = rng.row

b = rng.column

end if

next

msgbox "行號為

專" & a & "-" & "列號

屬為" & b

end sub

11樓:匿名使用者

sub aa()

dim a as range

for each a in range("a1:d3")if a.value = 7 then

msgbox "a=" & a.row & " , b=" & a.column

end if

next

end sub

excel 怎麼用vba檢查一個字串中是否包含特定的字母

12樓:匿名使用者

1、首先我們打抄開一個工作樣襲表作為例子。

2、使用alt+f11組合快捷鍵進入vbe編輯器,插入一個新模組,在模組編輯框中輸入以下**:option explicit,sub asc(),dim num1%, num2%,num1 = asc("excel")  '返回69num2 = asc("e")  '返回,101[a1] = "num1= ": [b1] = num1,[a2] = "num2= ":

[b2] = num2,end sub。

3、這裡我們宣告變數型別的方式和原來的不一樣,使用的是%符號,其實代表的就是as  integer,效果是一樣的。

4、這裡我們給兩個變數賦值,賦值的內容為字串excel和字串e,但是並不是那麼簡單,我們給的值是asc()函式轉換的**。其中excel使用asc()函式只是取字串首位字母的**。這裡區分大小寫。

5、插入一個按鈕並指定巨集,我們執行後得到了正確的結果。另外,我的這個過程是可以正常執行,但是asc被指定按鈕時會報錯,大家可以選擇其他的過程名,就可以指定按鈕了。

13樓:人設不能崩無限

1、在新工作表的來sheet1上點選右源

鍵2、選擇檢視**

3、點bai

擊倒du三角,zhi選擇worksheet4、點選右邊dao倒三角,選擇觸發方式,如beforedoubleclick表示在雙擊滑鼠左鍵時觸發

5、點選候出現如下**框架

6、輸入以下語句:sheet1.cells(1, 3) = sheet1.

cells(1, 1) + sheet1.cells(1, 2)意為將a1、b1單元格求和並放在c1單元格

7、點選儲存,然後關閉vba視窗

8、由於a1,b1沒有資料,所以c1為0

9、輸入資料後,會發現即使按了回車,c1也不變,因為設定的是雙擊滑鼠左鍵觸發。

10、雙擊滑鼠左鍵後就變了

14樓:姓王的

用instr函式或like運算,**格式如下:

if instr("字串", "特定字母") > 0 then或if "字串" like "*特定字母*" then如果內包括特定字母,則條件

成立。注意後一種容特定字母前後都要寫上「*」號

在excel中 如何用vba查詢某特定單元格並返回該單元格的行和列值?

15樓:小周喜歡熬夜

在工作表中我們經常使用查詢功能,在一列中查詢某個內容,查詢下一個,那在vba中我們該如何進行查詢呢?

我們希望通過輸入班級,點選篩選就能出來想要的內容,這裡我忘了在篩選之前先做個清除,所以篩選二班記錄時,三班的記錄沒有被清除掉。

我們要把某個班級的記錄篩選出來,那麼就希望首先在對應的列裡找到某個班級所在的單元格,這裡就用到了find,找到後就把該行復制到對應位置,然後繼續查詢下一個。我們就可以使用vba**:

sub 篩選()dim rng1, rng2, rng3 as range, addr$, adr$set rng1 = range("a:a").find(range("e6").

value)addr = rng1.addressdo set rng1 = range("a:a").

findnext(rng1) adr = rng1.address set rng2 = cells(rows.count, "e").

end(xlup)(2, 1) set rng3 = rng1.entirerow.range("a1:

c1") rng3.copy rng2loop until addr = rng1.addressend sub

16樓:匿名使用者

dim flag as boolean

flag=false

for i=1 to usedrange.rows.countfor j=1 to usedrange.

columns.countif cells(i,j)="weight/mt contents" then

rows(i+1).insert shift:=xldownrows("1:"& i).delete shift:=xlupflag=true

exit for

end if

next j

if flag then exit fornext i

excel用vba巨集中用for迴圈將一列滿足條件的後面加上需要的數值比如

直接寫個公式就可以了。假如你那個1在的列是b,在c裡寫公式if b1 1,a 空 然後填充就可以了。如果一定要用vba,那就讀出來單元格的內容,然後根據內容填充就可以了。sub aaa for i 1 to range a65536 end xlup row if cells i,1 張 and c...

excel的VBA問題 建立巨集,要求輸入學生人數以及各個

總分 平均分用公式更好吧。除非公式無法完成,或者完成的效果不好 速度慢 被修改 否則就不要用vba。弗爾佈雷斯 的回答已經實現基本的內容,如果你想要介面化的東西,可以追問我。excel vba怎樣在點選按鈕後,彈出一個輸入密碼的對話方塊,密碼正確的話執後續程式段,否則結束 excel高手改寫vba加...

excel查詢一列中包含特定字元的單元格個數

特定字元是文字時要加 雙引號引起來,如 count find 大 a1 a10 就是說在a1 a10的字串中中查詢 大 如版果能找到,就返回大在字權符串中出現的位置,比如大在a1中是第三個字元,那麼就返回3,如果沒有找到 大 這個字元,將返回錯誤值。count 函式是統計一個陣列或區域中數字的個數,...