VBA 找每列最後一段相同底色的單元格 附圖

2022-05-08 04:17:28 字數 5129 閱讀 6763

1樓:匿名使用者

hi我,詳細解答

這個問題難點在於:如果是條件格式產生的顏色,很難獲得……但是不是呢?

public sub isub()

dim r&, ir&, ic(1 to 2), clr%, clr1%, clr2%, copyc%, i

clr1 = 6

clr2 = 46

ic(1) = 2

ic(2) = 5

copyc = 8 '100

dim rng() as range, tmp as range, c as range, s$

redim rng(lbound(ic) to ubound(ic))

for i = lbound(ic) to ubound(ic)

set tmp = nothing

s = ""

with cells(65536, ic(i)).end(xlup)

for r = 0 to .row - 1

clr = .offset(-r, 0).interior.colorindex

if clr = clr1 or clr = clr2 then

set tmp = .offset(-r, 0)

for ir = 0 to tmp.row - 1

if tmp.offset(-ir - 1, 0).interior.colorindex <> clr then

set tmp = range(tmp.offset(-ir, 0), tmp)

exit for

end if

next

set rng(i) = tmp

exit for

end if

next

end with

columns(copyc + i - 1).clear

if not rng(i) is nothing then

for each c in rng(i)

s = s & c.value

next

end if

cells(1, copyc + i - 1).value = s

next

end sub

2樓:萊昂納德_尤拉

03版公式法要不要

首先要定義一個名稱

選中f1單元格 插入-名稱-定義

名稱隨便取一個abc,引用=get.cell(63,a1),確定後,f1輸入=abc,向右向下填充至原始資料相同大小區域,如圖所示(就是提底色的顏色索引)

圖中f29公式

=phonetic(offset(a1,min(max(if(f1:f27=6,row(f1:f27))),max(if(f1:

f27=46,row(f1:f27)))),,max(max(if(f1:f27=6,row(f1:

f27))),max(if(f1:f27=46,row(f1:f27))))-min(max(if(f1:

f27=6,row(f1:f27))),max(if(f1:f27=46,row(f1:

f27))))))

crtl+shift+enter結束公式,向右填充

3樓:表裡如一

已經做好,兄弟你聯絡我吧.

**如下.,要樣本聯絡我.

sub aa()

dim icolor()

irow = range("b65536").end(xlup).row

jrow = range("e65536").end(xlup).row

columns(100).clearcontents

n = 1

if cells(irow, 2).interior.colorindex <> 3 then

newcolor = cells(irow, 2).interior.colorindex

for k = irow to 1 step -1

if cells(k, 2).interior.colorindex <> newcolor then

m = k + 1

exit for

end if

next

for each c in range(cells(m, 2), cells(irow, 2))

cells(n, 100).value = cells(n, 100).value & c.value

next

n = n + 1

elseif cells(irow, 2).interior.colorindex = 3 then

for k = irow to 1 step -1

if cells(k, 2).interior.colorindex <> 3 then

mm = k + 1

iicolor = cells(mm, 2).interior.colorindex

exit for

end if

next

for k = mm to 1 step -1

if cells(k, 2).interior.colorindex <> iicolor then

mmm = k + 1

exit for

end if

next

for each c in range(cells(mmm, 2), cells(mm, 2))

cells(n, 100).value = cells(n, 100).value & c.value

next

n = n + 1

end if

if cells(jrow, 5).interior.colorindex <> 3 then

newcolor = cells(jrow, 5).interior.colorindex

for k = jrow to 1 step -1

if cells(k, 5).interior.colorindex <> newcolor then

m = k + 1

exit for

end if

next

for each c in range(cells(m, 5), cells(irow, 5))

cells(n, 100).value = cells(n, 100).value & c.value

next

n = n + 1

elseif cells(jrow, 5).interior.colorindex = 3 then

for k = jrow - 1 to 1 step -1

if cells(k, 5).interior.colorindex <> 3 then

mm = k

jcolor = cells(mm, 5).interior.colorindex

exit for

end if

next

for k = mm to 1 step -1

if cells(k, 5).interior.colorindex <> jcolor then

mmm = k + 1

exit for

end if

next

for each c in range(cells(mmm, 5), cells(mm, 5))

cells(n, 100).value = cells(n, 100).value & c.value

next

n = n + 1

end if

end sub

excel vba單元格內查詢重複項填充單元為粉紅色

4樓:

sub tt()

dim arr

dim i%,j%,n%,st$

arr = range("z1:z" & [z65536].end(3).row)

for i = ubound(arr) to 1 step -1st = arr(i,1)

for j = 1 to len(st)

n = instr(1,st,mid(st,j,1))if n < j then goto rsnext

next

rs:range("z" & i).interior.color= 16751103

end sub

查詢excel 每行最後一個數值所在的單元格位置?

5樓:匿名使用者

基礎操作,選中每列的第一個資料,ctrl+下游標鍵快速定位到最後一個非空單元格。

公式,=max(if(a:a>0,row(a:a),0)),陣列函式,三鍵結束。

vba(最有效方法),

sub tst()

msgbox range("a65536").end(xlup).row

end sub

6樓:匿名使用者

在p2單元格輸入以下公式,然後向下填充公式,得到最後資料所在的列數

=lookup(1,0/(b2:o2<>""),column(b:o))

詳見附圖

7樓:匿名使用者

如果資料量很大的話,建議用vba巨集,雙重迴圈for next,從大到小256 to 1。if判斷是否為空,第一個不為空值的單元格cell(x,y)便是。

以下為**:執行alt+f8,回車就行。

sub 末列號()

dim x, y, z

dim n

worksheets(1).activate '先啟用工作表sheets(1).select

for x = 1 to 6000

z = 0

n = 2

for y = 256 to n step -1if sheets(1).cells(x, y) <> 0 thenz = z + 1

n = y

end if

if z = 1 then

sheets(1).select

cells(x, 1) = y

z = z + 1

end if

next

next

end sub

修鞋的姑娘最後一段續寫,修鞋的姑娘最後一段續寫150字

修鞋姑娘續寫 一 日子一天天的過去了,我依然東尋西覓的尋找那位修鞋的姑娘,真是功夫不負有心人,當我想放棄的時候,卻意外地在一條偏僻小巷裡找到她。只見那對蠶眉下有一對圓溜溜的大眼睛,胖乎乎的臉蛋,一點兒也沒有變,我衝上去喊到 姑娘,姑娘。只見她慢慢地轉頭說 是你?是 我驚喜的點了點頭。這是你的三角錢 ...

木蘭詩最後一段的意思,木蘭詩最後一段的意思

雄兔腳撲朔,雌兔眼迷離 雙兔傍地走,安能辨我是雄雌?翻譯 雄兔前腳時常爬搔,雌兔兩眼常眯著 兩隻兔子貼著地面跑,怎麼能分辨出哪是雄或雌?句解 以妙趣橫生的比喻,對木蘭女伴 代父從軍,十多年來未被發現的謹慎 機敏做了謳歌和讚美。段解 以上一段是第四部分,是詩的附文,以雙兔為喻,讚美木蘭的才智。課文最後...

《好夥伴》最後一段,課文《好夥伴》的最後一段是什麼?

馬哈多是一名護林員,他養著一隻獵狗。有一次,他帶著獵狗上山巡邏。在一處草叢中,獵狗咬住馬哈多的衣角,汪汪汪地叫起來。馬哈多向前走了幾步,撥開草叢,發現地上躺著一隻受傷的烏鴉。馬哈多把烏鴉帶回家,給它抹藥,幫它養傷。烏鴉的傷很快就好了。從此,烏鴉成了馬哈多和獵狗的小夥伴。馬哈多和獵狗外出護林時,烏鴉就...