二樓的前兩行不就是這個要求?
For Each sh In Sheets '在所有工作表中循環
sh.UsedRange = sh.UsedRange.Value '把公式結果變成值
不必一定要copy再以值貼上才能把公式變成值的。
在所有表中循環不須建立陣列,建立了也是多一道程序,又何必多此一舉?作者: GBKEE 時間: 2012-5-4 14:48
End後面的(3)~xlup,該欄有資料的最後一列
若妳的工作表按順序排列,可以指定從第幾個工作表開始。
如:For i = 5 To 12
Sheets(i).Activate
執行妳的工作
Next
或者以表名的文字判斷,例如:
For Each sh In Sheets
If InStr("MayJunJulAugSepOctNovDec", sh.Name) Then
sh.Activate
執行程式
End If
Next作者: PJChen 時間: 2012-5-6 14:59
回復 13#oobird
oobird:
程式執行至 If InStr("MayJunJulAugSepOctNovDec", sh.May) Then '從"May"開始作業一直到最後一個工作表
出現問題就執行不下去了,所以沒有執行完,請幫忙看看有什麼問題?
Workbooks("2012 samples Chart.xlsx").Activate
For Each sh In Sheets '在所有工作表中循環
If InStr("MayJunJulAugSepOctNovDec", sh.May) Then '從"May"開始作業一直到最後一個工作表
For xi = Month(Date) To 12 'Month(Date) 當月份 到 12月份
複製代碼
作者: PJChen 時間: 2012-5-6 16:31
回復 17#oobird
Hi oobird,
執行ok.
請教語法問題:
1) 以下替換為你所寫的另一語法(如下表):
For i = 5 To 12 (我使用的sample因為1~3月份已刪除,所以我將之改為2~7)
Sheets(i).Activate '執行工作
Next
但無法執行,是否我把哪裡給改錯了?
2) 另一語法 If InStr("MayJunJulAugSepOctNovDec", sh.Name) Then
我看到上述2個語法都是要將每一毎工作表寫出來,我想知道有沒有"指定式"的?(例:從sheet(May)開始至最後一個工作表,而不用將May之後的每個工作表都列出?