ecelvbafor迴圈滿足條件後重新賦值

時間 2022-02-03 21:30:03

1樓:匿名使用者

用static 關鍵字宣告靜態變數,靜態變數的生命週期是工作簿關閉之前,也就是說工作簿沒關閉之前它一直常駐記憶體,不會因為過程執行結束被系統釋放,**改寫如下:

option explicit

sub test()

dim i as integer

static j as integer '定義一個靜態變數if j <= 0 then j = 1 '如果不賦值,integer型別預設值會是0

for i = j to 20

if sheet1.cells(i, 1) <> "" thensheet1.cells(i, 1) = ielse

exit for

end if

next i

j = i '將i非靜態變數最後的結果賦值 靜態變數j儲存end sub

如果這個也不行,那麼就把i儲存在工作表裡面,下次執行,從工作表找回i值!

2樓:匿名使用者

sub aaa()

for i = 1 to range("a65536").end(xlup).row

if cells(i, 1) = "張" and cells(i, 2) = 1 then cells(i, 3) = "a"

next

end sub

如果要判斷b列是否為"空",可用函式 isempty (cells(i, 2)) ,當cells(i,2)沒有任何值時為"真"

excel 用vba 巨集 中 用一個for迴圈 將 一列滿足條件的後面加上 需要的數值 比如

3樓:依然特雷西

1、開啟一個表,選中序列,點選工具-巨集,開始錄製。

2、錄製完成後按alt+f11 切換到**編輯視窗,設定變數i為長整形,並且設定一個for迴圈,迴圈次數比要新增的工資條標籤大,在end sub之前加next。

3、按alt+f11切換到excel介面,再錄製一個刪除標題的巨集,修改**,新增for迴圈按alt+f8調出巨集視窗。

4、從檢視中調出窗體按鈕,拖動出一個按鈕併為其制定生成工資表的巨集 。

5、右鍵點選編輯文字按鈕改名,再按相同的方法新增一個刪除標題欄的巨集,這樣就可以逆向操作了。

4樓:匿名使用者

直接寫個公式就可以了。假如你那個1在的列是b,在c裡寫公式if(b1=1,"a","空"),然後填充就可以了。

如果一定要用vba,那就讀出來單元格的內容,然後根據內容填充就可以了。

5樓:姓王的

sub aaa()

for i = 1 to range("a65536").end(xlup).row

if cells(i, 1) = "張" and cells(i, 2) = 1 then cells(i, 3) = "a"

next

end sub

如果要判斷b列是否為"空",可用函式 isempty (cells(i, 2)) ,當cells(i,2)沒有任何值時為"真"

6樓:弗爾佈雷斯

不用vba,公式即可解決,具體公式如下

「=if(and(mid(a1,1,1)="張",b1=1),"a","")」

7樓:匿名使用者

dim i as integer

i = 1

for i = 1 to 1000

if activesheet.cells(i,1).value = "" then

exit for

end if

if activesheet.cells(i,1).value = "張" then

activesheet.cells(i,3).value = "a"

end if

next

求excel用vba的if條件語句與for迴圈語句的基本語法,不要複製貼上,要最簡單說明下就行了

8樓:陽光上的橋

最簡單的來兩句,不明白請追問~~~

for的用法是這樣的:

for i=1 to n

......語句......

next i

這樣的功能是,使裡面的 語句 執行n次,每次i的值都不同,分別是1~n,用來完成固定次數的重複。

if的用法是這樣的:

if 條件 then

.......語句1.......

else

......語句2......

end if

這樣的功能是判斷條件是否滿足,如果滿足就執行 語句1,否則執行 語句2

以上例子中的語句、語句1、語句2都可以是一個或者多個語句,往往是一段。

9樓:匿名使用者

if語句有兩種用法,語句式和塊式:

語句式:

if 條件 then 條件為真的執行結果 [else 條件為假時的執行結果]

'號中間的可以視情況省略

如:if range("a1")=1 then range("b1")=range("a1")+100 else range("b1")=range("a1")-50

意思就是:如果a1為1時,b1=a1+100,否則,b1=a1-50

語句式使用時,中間不能有回車符號,但可以使用 _(即:空格+_+回車),如上可以寫成:

if range("a1")=1 then range("b1")=range("a1")+100 _

else range("b1")=range("a1")-50

塊式:if   條件  then

條件為真時執行的語句(可以多行)

[else

條件為假時執行的語句(可以多行)]

end if

'用括起來的,如果沒有,可以省略,但塊式,必須if。。。。then 。。。。end if 匹配,否則,將出現語法錯誤。

塊式還有一種用法:

if  條件1 then

條件1為真時執行的語句

elseif 條件2 then

條件2為真時執行的語句

elseif 條件3 then

條件3為真時執行的語句

……else

上述條件均不具備時,執行的語句

end if

尤其要注意的是,採用塊式後一種,各條件之間必須是相同專案的比較,並且條件之間的邏輯必須閉合,否則就可能會出現計算錯誤。

if 還有一種函式方式的用法:

iif(條件,為真時返回的結果,為假時返回的結果)

'用法與工作表函式if()一樣。

for的語法:

for 自定義變數=初始值 to 終止值 [step 步長]

自定義變數每增加(或減少)一個步長要執行的語句(可以多句)

[exit for]

next

如果初始值《終止值,且步長為1,則step 步長可以省略

步長可以是正數(初始值必須小於等於終止值),或者負數(起始值必須大於等於終止值)

eixt for 表示可以根據執行結果隨時退出迴圈。

for。。。。next必須配對使用,不能簡化

一般地,for ....next 和 if語句組合使用

10樓:匿名使用者

if 條件 then

執行語句

else

執行語句

end if

可以省略else

for 變數=初始值 to 最終值 step 步長值執行語句

next 變數

如果步長值為1,可以省略「step 步長值」

excel中如何編寫vba判斷迴圈多行單元格數值及賦值.

11樓:太極健

你的判斷是為0而不是為空,如果是判斷為空,=""

迴圈如下

sub test ()

i=range("a65536").end(xlup).row『判斷a列最後一行的行號

for x=1 to i』建立迴圈從第一行到最後一行if cells(x,1)=0 then cells(x,6)=cells(x,1) & cells(x,2) & cells(x,3)'判斷a值為0時,如果是判斷為空,=0改變=""

next x

end sub

12樓:匿名使用者

簡單的迴圈

sub test()

dim i as long

dim endrow as long

endrow = range("a" & rows.count).end(xlup).row '獲取末行

if endrow < 1 then exit sub

for i = 1 to endrow-1

if trim(range("a" & i).value) = "" then

end if

next i

end sub

或者sub test()

dim i as long

dim endrow as long

endrow = range("a" & rows.count).end(xlup).row '獲取末行

if endrow < 0 then exit sub

for i = 1 to endrow

if trim(range("a" & i).value) = "" then

end if

next i

end sub

二段**,前面是f1=(=a2&b2&c2),後一段是f1=(=a1&b1&c1)

13樓:

sub abc()

dim r as long

for r = 1 to 1000

next r

end sub

請修改迴圈大小為所需的數值。

另外,[a1]=0時,[f1]=a2&b2&c2,還是=a1&b1&c1 ?

上面的**是 =a1&b1&c1

excel滿足條件的求和,excel滿足條件的求和

excel中如何對滿足條件的資料進行求和 假設你的第二個表中資料來源 為 sheet2 資料列分別是a,b,c,d列,範圍是從第1到第100行 則你在第一個表中的一個庫存求和單元格中,輸入以下公式,可以滿足你的要求 sumproduct sheet2 c1 c100 a sheet2 a1 a100...

參加2019銀行春季校園招聘需滿足什麼條件

每家銀行招聘崗位不同 要求也略有不同。根據往年銀行春季校園招聘的應聘條件來看,基本要求如下 學歷要求 一般為全日制本科及以上學歷的應屆畢業生,個別銀行,個別崗位會放寬要求,招聘往屆生或是學歷放寬至大專及以上學歷。專業要求 在專業方面現在要求比較寬鬆,一般都是以經濟類 金融類 財會類 計算機類法學類 ...

EXCEL如何統計其他工作表中滿足某一條件的資料區域內,相應內容的單元格數目

你好 你的表我正在看,先說一個問題,就是日期要正規,寫成 2012 01 02 2012 01 02 這樣的格式,計算機才能當成資料來計算。不然無法計算。wps的日期是從1898年12月31日開始的一個4萬多天的數字,excel的日期是從1900年1月1日開始的一個4萬多天的數字 考到要關係三列資料...