如何使用VBA進行公式自動填充,excel利用VBA自動填充公式

2021-05-02 05:21:09 字數 5558 閱讀 1066

1樓:

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

2樓:匿名使用者

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

3樓:匿名使用者

輸入完**後,關閉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

嗯試試再說

4樓:張簡文景

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自動填充公式 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

excel 用vba編寫自動填充公式功能

10樓: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

11樓:匿名使用者

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

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

12樓:匿名使用者

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

13樓:匿名使用者

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**按照第一列下拉填充公式怎麼做到??

14樓:復仇之牙

以下圖為例

**sub 巨集1()

dim r as long

r = cells(rows.count, "a").end(3).row

[b1].autofill destination:=range("b1:b" & r)

end sub

15樓:deqr雲飄

軟體版本:office2007

方法如下:

1.利用vba在c列中加入公式求ab列的和,並且填充公式至所有有資料的行:

2.alt+f11,輸入**如下:

3.f5執行**,返回excel,得到結果如下:

sub aa()

x = [a65536].end(3).rowrange("k10").formular1c1 = "公式1"

range("l10").formular1c1 = "公式2"

range("m10").formular1c1 = "公式3"

range("k10:m10").autofill destination:=range("k10:m" & x)

end sub

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

16樓:匿名使用者

一句**就行:

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

如何在啟用excel時自動執行vba的某個巨集

1 首先將excel文件 預設新建副檔名為xlsx 另存為啟用巨集的工作簿,副檔名為xlsm。2 按下組合鍵alt f11快速切換到vba視窗。3 進入vba視窗後的介面,如圖所示。4 雙擊thisworkbook後,會彈出一個 視窗。6 儲存,關閉,重新開啟excel 副檔名為xlsm 文件,效果...

有沒有什麼公式,可以自動填充顏色,2為紅色,4為黃色,6為綠色,8為紫色,謝謝了

12345678我猜的 excel 公式求助,請高手解答。如下表述 concatenate if left a1 深 if left a1 淺 if abs a1 11,x choose int abs a1 1,白 紅 紫 褐 黃 綠 藍 灰 黑 棕 雜 if mod a1,1 0,if iser...

excel中如何完成下拉列的自動填充

沒有太明白樓主的意思,您的把前3列的內容自動填充到下面空白的列是什麼意思?是要把 顯示的每個空格都填充成空格上面那一行的內容麼?如果是的話 一 選中你要填充的這三列 不要直接選中這三列喔,不然會無限制的填充下去,選中這三列的第一格到最後一格 二 ctrl g 空位填充 出現的視窗下選 定位條件 空值...