EXCEL用VBA編寫自動填充公式功能

時間 2021-05-02 05:21:15

1樓:bb石俊傑

看了下你的公式執行方式,就是對比是否在c列裡有b列的相同資料,有就在第9列寫個"0"。寫得也怪怪的。幫你改下這樣

private sub worksheet_activate()

for n = 2 to [b65535].end(xlup).row

cells(n, 2).select

cells(n, 9) = evaluate("=if(countif(c:c,index(b:b,row()))>0,0,"""")")

cells(n, 8) = evaluate("你的excel公式")

cells(n, 10) = evaluate("你的excel公式")

cells(n, 11) = evaluate("你的excel公式")

nextend sub

2樓:匿名使用者

cells(1,8).resize([a65536].end(3).row,4).filldown

這樣?不過你好像第9列另有安排哎

3樓:匿名使用者

y=range("a65536").end(xlup).rowfor m=2 to y

cells(m,8).formular1c1=你的公式cells(m,9).formular1c1=cells(m,10).

formular1c1=cells(m,11).formular1c1=next

4樓:匿名使用者

private sub worksheet_activate()dim i, n, x as integerx = [c1048576].end(xlup).rowfor i = x to 2 step -1if cells(i, 2) = cells(i, 3) thencells(i, 9) = "0"

exit for

end if

if cells(i,1)<>"" thenrange(cells(i,8),cells(i,11)=iend if

next

next

end sub

excel利用vba自動填充公式 5

5樓:摯愛唯夢

a表資料輸入後通過vba過入到b表,一次有n行,b表中c、e列有公式,公式太複雜,無法通過vba直接輸入,只能填充,如何通過vba選中b表c-e列的m至m+n行,如何填充公式,因為目前無法確定會使用多少行資料,所以不想預先拉很多行公式。謝謝

sheets("交易記錄列表").activaterange(cells(xe + 1, 9), cells(xe + h + 1, 17)).select

selection.filldown

在range前加**名稱會導致錯誤,所以需先啟用目標**

6樓:沐文昂

看了下你的公式執行方式,就是對比是否在c列裡有b列的相同資料,有就在第9列寫個"0"。寫得也怪怪的。幫你改下這樣

private sub worksheet_activate()

for n = 2 to [b65535].end(xlup).row

cells(n, 2).select

cells(n, 9) = evaluate("=if(countif(c:c,index(b:b,row()))>0,0,"""")")

cells(n, 8) = evaluate("你的excel公式")

cells(n, 10) = evaluate("你的excel公式")

cells(n, 11) = evaluate("你的excel公式")

nextend sub

請採納答案,支援我一下。

7樓:匿名使用者

private sub worksheet_activate()

for n = 2 to [b65535].end(xlup).row

cells(n, 2).select

cells(n, 9) = evaluate("=if(countif(c:c,index(b:b,row()))>0,0,"""")")

cells(n, 8) = evaluate("你的excel公式")

cells(n, 10) = evaluate("你的excel公式")

cells(n, 11) = evaluate("你的excel公式")

nextend sub

8樓:匿名使用者

請附上你的具體問題。

excel**怎麼利用vba自動填充公式

9樓:匿名使用者

如圖,比如要在c1:c9寫入公式,**為:

sub dd()

dim i as integer

for i = 1 to 9

range("c" & i).value = "=sumif(a1:a9," & "a" & i & ",b1:b9)"

next

end sub

如何使用vba進行公式自動填充?

10樓:

alt+f11開啟vbe

雙擊你的工作表,在右邊貼入

private sub worksheet_change(byval target as range)

dim n

n = target.row

if target.column = 1 then

if vba.isnumeric(target.value) then

range("b" & n).formula = replace(range("b" & n - 1).formula, "a" & n - 1, "a" & n)

range("c" & n).formula = replace(range("c" & n - 1).formula, "b" & n - 1, "b" & n)

else

msgbox "輸入的不是數字,請重新輸入!"

end if

end if

end sub

11樓:匿名使用者

private sub worksheet_change(byval target as range)

if target.column = 1 and target.row > 10 then

if isnumeric(target) thena = target.row

range("b" & a - 1 & ":c" & a - 1).autofill destination:=range("b" & a - 1 & ":c" & a)

end if

end if

end sub

12樓:匿名使用者

輸入完**後,關閉vb編輯器即可。

private sub worksheet_change(byval target as range)

x = target.row

y = target.column

if y = 1 then

if cells(x, y) = "" then

cells(x, y + 1).clearcontents

cells(x, y + 2).clearcontents

elseif isnumeric(cells(x, y)) = true then

cells(x, y + 1) = cells(x, y) * 2

cells(x, y + 2) = cells(x, y + 1) * 2

end if

end if

end sub

公式不管寫在**,總得寫出來吧,不然**怎麼知道你要怎麼算。改了一下**,你試試是不是這個效果。

private sub worksheet_change(byval target as range)

x = range("a" & rows.count).end(3).row

y = target.column

if y = 1 then

dim i as long

for i = 1 to x

if cells(i, y) = "" then

cells(i, y + 1).clearcontents

cells(i, y + 2).clearcontents

elseif isnumeric(cells(i, y)) = true then

cells(i, y + 1) = cells(i, y) * 2

cells(i, y + 2) = cells(i, y + 1) * 2

end if

next

end if

end sub

嗯試試再說

13樓:張簡文景

a表資料輸入後通過vba過入到b表,一次有n行,b表中c、e列有公式,公式太複雜,無法通過vba直接輸入,只能填充,如何通過vba選中b表c-e列的m至m+n行,如何填充公式,因為目前無法確定會使用多少行資料,所以不想預先拉很多行公式。謝謝

sheets("交易記錄列表").activaterange(cells(xe + 1, 9), cells(xe + h + 1, 17)).select

selection.filldown

在range前加**名稱會導致錯誤,所以需先啟用目標**

excel使用vba巨集在區域內自動填充公式

14樓:匿名使用者

一句**就行:

cells(6, 2).resize(400 - 5, 200 - 1).formular1c1 = "=表1!rc2*r5c"

excel vba快速填充公式(也就是往下拉)

15樓:

1、名稱框中輸入:bm1

2、凍結窗格

3、名稱框中輸入:k1:bm1

4、滑鼠指標一道bm1的右下角的小方點位置,按住滑鼠左鍵,往下拖動。

5、取消凍結窗格

怎樣用excel編序號1,1 1,2 2,2,2 1,

苦樂一輩子 按照你的規律,請參照以下公式 空白單元格輸入 int row a3 3 mod row a3 3 10 然後下拉 int row a3 3 mod row a3 3 10向下填充 效果 11.1 1.22 2.12.2 33.13.2 第一個1自己輸入 比如在a1 a2輸入 if mod...

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 張 ...

excel用VBA寫從1加到100的程式

wol之歌 你好,很高興為你回答這個問題。樓上的回答也很好,這裡我提供另一種思路,各位大佬自行比較。sub fillingexample dim i for i 1 to 100 cells i,1 value 1 i 2 i next end sub sub sumexample dim i di...