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函式結合剛分出的中文欄位把另一...