excel中請用VBA提取滿足條件的數

時間 2022-03-14 01:10:01

1樓:姓王的

看我的,詳見附件

private sub commandbutton1_click()

dim ar, ra as range, bo as boolean

range("j2:p16").clearcontents

ar = range("b2:g16")

i17 = [i17].text: i18 = [i18].text: n = 16

for i = 15 to 1 step -1

bo = true

for j = 1 to 5

for k = j + 1 to 6

if ar(i, j) = ar(i, k) then bo = false

next k, j

n17 = 0: n18 = 0

if bo then

for j = 2 to 5

if instr(i17, ar(i, j)) > 0 then n17 = n17 + 1

if instr(i18, ar(i, j)) > 0 then n18 = n18 + 1

next

if n17 = 2 and n18 = 2 then

range("b" & i + 1).resize(, 7).copy range("j" & n)

n = n - 1

end if

end if

next

end sub

excel中用vba提取符合條件的數。

2樓:

**如下(詳見附件)

如何利用excel vba提取指定條件的資料

3樓:匿名使用者

sub macro1()

dim years as string

years ="2000"

rows("1:1").select

selection.autofilter

activesheet.cells.autofilter field:=4, criteria1:=years

end sub

以上**定於years 變數,可根據設定年份然後選擇第一行,生成高階篩選,篩選條件是第四列,篩選內容是變數years

4樓:魚木混豬喲

**如下:

請儲存成名為book的97-2003格式檔案

並把所有的資料檔案,放到與這個檔案同一個資料夾中,再執行程式

sub main()

f = dir(thisworkbook.path & "\" & "*.xls*")

do while f <> ""

if f = "book.xls" then goto eee

workbooks.open thisworkbook.path & "\" & f

arr = activeworkbook.sheets(1).range("a1").currentregion

for i = 2 to ubound(arr)

if activeworkbook.sheets(1).cells(i, "d") = "2000" then '這裡是提取2023年資料,如果是其他年份,將2000更改

k = thisworkbook.sheets(1).range("a65536").end(xlup).row + 1

activeworkbook.sheets(1).rows(i).copy thisworkbook.sheets(1).rows(k)

end if

next i

workbooks(f).close

eee:

f = dir

loop

end sub

5樓:三條橋聚星

可以的,vba和透視表都可以。

excel 用vba 提取符合條件的三位數 50

6樓:慶年工坊

sub s()

arr = split([a1], "*")open "d:\1.txt" for output as #1for i = 1 to len(arr(0))for j = 1 to len(arr(1))for k = 1 to len(arr(2))print #1, mid(arr(0), i, 1) & mid(arr(1), j, 1) & mid(arr(2), k, 1)

next k, j, i

close #1

end sub

7樓:匿名使用者

你列出所有組合再篩選就行了

excel中請用vba把滿足條件的數提出來放在c列。

8樓:姓王的

把樣表發到我的郵箱吧(個人資料裡找郵箱)。

還有一個問題,忽略小數點嗎?(也就是問一下小數點兩邊的數算不算相鄰的數)

9樓:匿名使用者

我不知道為什麼d列的數不能分解開,形成條件列?

比如505 直接寫成50和05?

還有,不能做為條件的數,也沒什麼標誌,為什麼不刪除掉?

這樣會給**編制增加困難。

雖然這樣也能寫出來,但是,太麻煩了,不愛寫。

excel怎麼用vba在當前表提取符合多個條件其他表的資料

10樓:陽光上的橋

請拷屏你的表,貼上你的**(文字,指出下標越界的語句),大家給你修改,這樣大家就不用自己輸入資料、編寫**那樣浪費時間。

11樓:匿名使用者

表發來 看看 你怎麼寫的,給你改好 [email protected]

***************=

sub chaxun()

dim arr, i&, d, brr, aa$

set d = createobject("scripting.dictionary")

arr = sheet2.usedrange

for i = 2 to ubound(arr)

d(arr(i, 1) & arr(i, 6)) = arr(i, 8)

next

for j = 2 to sheet1.range("a65536").end(xlup).row

if d.exists(sheet1.cells(j, 1) & sheet1.cells(j, 2)) then

sheet1.cells(j, 3) = d(sheet1.cells(j, 1) & sheet1.cells(j, 2))

end if

next

end sub

excel中請用vba按要求提取資料。

12樓:陽光上的橋

下面的**除錯通過,滿足你的要求:

有問題請追問。

13樓:

我這段**是指你的資料區域固定不變的,如果有變化就不準了

sub test()

dim v%, w%, x%, y%, z%, aa%, ab%

v = 45 - [l1]

w = 45 - [m1]

x = 45 - [n1]

y = 45 - [o1]

z = 45 - [p1]

aa = 45 - [q1]

ab = 45 - [r1]

range("l2:r44").clear

range("v2:v" & 46 - v).copy range("l" & v & ":l44")

range("w2:w" & 46 - w).copy range("m" & w & ":m44")

range("x2:x" & 46 - x).copy range("n" & x & ":n44")

range("y2:y" & 46 - y).copy range("o" & y & ":o44")

range("z2:z" & 46 - z).copy range("p" & z & ":p44")

range("aa2:aa" & 46 - aa).copy range("q" & aa & ":q44")

range("ab2:ab" & 46 - ab).copy range("r" & ab & ":r44")

end sub

14樓:草履蟲而

你只是舉了個例子,但是實際問題是這樣的嗎?編輯好了**,如果你的實際問題不是這樣的,同樣無效

excel中請用vba統計數字個數並提取數。

15樓:綠衣人敲門

感覺次數不對呀!

比如a列:9出現了4次,不是3次;5出現了4次,不是3次;……

EXCEL用VBA提取字串

築夢 可以使用函式提取一個字串中的一段字元。mid 用來返回文字字串中從指定位置開始的特定數目的字元,該數目由使用者指定,函式 mid 始終將每個字元。應該用到三個字串函式 left right midleft函式用法 left 要提取字元所在單元格,從左側開始提取的個數 right函式用法 rig...

eXceL中VBA?Excel裡面VBA是什麼?

你的模擬結果少了一個111 自定義函式,公式複製到模組中。假定原資料在a1中,在b1單元格輸入 tiqu a1 結果為000 666 111 777 如果用正則公式的話,應該會更簡單。public function tiqu rng as range dim i as integer dim r a...

EXCEL中如何提取特定的欄位,如何提取excel裡面特定的欄位?

你這裡沒有明顯的規律,不太好辦,我有個稍笨點的方法,雖然笨點但是依然比手動分快n倍哈。具體思路 1 把原資料複製到兩個新列,以便後面使用,用ctrl h 執行0 9共10次替換,然後再替換 字元,隨後替換英文字元 2 通過1將能先分出中間的中文欄位,然後用replace函式結合剛分出的中文欄位把另一...