1樓:真真真白丁
親,幾點不明白:
1、這個selection是揍啥?您先要手工選擇資料區域麼?
2、把j從第一行迴圈到最後一行,和下面的copy**似乎沒有半毛錢關係呀?換句話說,copy的列知道了,行呢?
您還是舉個例子詳細說一下吧。
2樓:匿名使用者
sub sdf()
ro = sheet1.[a60000].end(xlup).row
for j = 1 to ro
for i = 1 to sheet1.cells(1, j + 4)
a = cells(65536, 1).end(xlup).row
a = iif(cells(1, 1) = "", 1, a + 1)
sheet3.cells(a, 1) = sheet1.cells(j, 2)
sheet3.cells(a, 2) = sheet1.cells(j, 3)
sheet3.cells(a, 3) = sheet1.cells(j, 4)
next
next
end sub
求excel用vba的if條件語句與for迴圈語句的基本語法,不要複製貼上,要最簡單說明下就行了
3樓:陽光上的橋
最簡單的來兩句,不明白請追問~~~
for的用法是這樣的:
for i=1 to n
......語句......
next i
這樣的功能是,使裡面的 語句 執行n次,每次i的值都不同,分別是1~n,用來完成固定次數的重複。
if的用法是這樣的:
if 條件 then
.......語句1.......
else
......語句2......
end if
這樣的功能是判斷條件是否滿足,如果滿足就執行 語句1,否則執行 語句2
以上例子中的語句、語句1、語句2都可以是乙個或者多個語句,往往是一段。
4樓:匿名使用者
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語句組合使用
5樓:匿名使用者
if 條件 then
執行語句
else
執行語句
end if
可以省略else
for 變數=初始值 to 最終值 step 步長值執行語句
next 變數
如果步長值為1,可以省略「step 步長值」
excel中如何用vba實現將excel內容複製到e盤中新建的文件裡?並迴圈使用
6樓:匿名使用者
sub excel內容複製文件()
dim lstartrow as long
dim lendrow as long
dim lrow as long
dim lcount as long
dim arr
dim str as string
dim objfso as object
dim objtext as object
set objfso = createobject("scripting.filesystemobject")
lstartrow = 1
lendrow = range("b65536").end(xlup).row
arr = range("b" & lstartrow & ":b" & lendrow)
lcount = 0
for lrow = lstartrow to lendrow
if (lrow - lstartrow) mod 200 = 0 then
lcount = lcount + 1
if not objtext is nothing then objtext.close
set objtext = objfso.createtextfile("e:\測試" & lcount & ".txt")
end if
objtext.writeline arr(lrow, 1)
next
lendrow = range("d65536").end(xlup).row
arr = range("d" & lstartrow & ":d" & lendrow)
for lrow = lstartrow to lendrow
if (lrow - lstartrow) mod 200 = 0 then
lcount = lcount + 1
if not objtext is nothing then objtext.close
set objtext = objfso.createtextfile("e:\測試" & lcount & ".txt")
end if
objtext.writeline arr(lrow, 1)
next
lendrow = range("s65536").end(xlup).row
arr = range("s" & lstartrow & ":s" & lendrow)
for lrow = lstartrow to lendrow
if (lrow - lstartrow) mod 200 = 0 then
lcount = lcount + 1
if not objtext is nothing then objtext.close
set objtext = objfso.createtextfile("e:\測試" & lcount & ".txt")
end if
objtext.writeline arr(lrow, 1)
next
objtext.close
set arr = nothing
set objtext = nothing
set objfso = nothing
end sub
7樓:匿名使用者
make a mark , 有空回來 就 寫個sub ctxt()
dim f as string
arr = array("b", "d", "s")for c = 0 to ubound(arr)for i = 1 to 10000 step 200f = e & "新建資料夾\" & arr(c) & i & ".txt"
open f for output as #1for t = i to i + 199
print #1, cells(t, arr(c))next
close #1
next
next
end sub
excel vba如何獲取當前工作薄名
1 首先我們開啟乙個工作樣表作為例子。option explicit sub ddt activeworkbook.name 返回活動工作薄的名稱 thisworkbook.name 返回當前工作簿名稱 thisworkbook.fullname 返回當前工作簿路徑和名稱 end sub 3 這裡返...
excel vba 如何定義單元格變數,並賦值
public sub 測試 dyg sheet1.range b2 value end sub 太極健 物件就是的賦值,必需使用set語句 public sub 測試 dim dyg as range set dyg range b2 end sub 你完全可以不用定義為單元格物件,直接賦值不就行了...
excel vba應用 如何讓單元格隨時間變化而自動變化顏色
設條件格式應該可以吧!excel不會根據時間自動計算,必須啟用,即便是vba也得執行下面的思路,b列輸入函式 直接設在條件格式中,好像不行 c列 b列,將c列公式下拉相當於啟用公式。設定條件格式,如果b列位true,a列的顏色變化 下面的and函式中得條件知設定了部分。a b c 2011 9 21...