標題:
[發問]
陣列及另一個小問題(已解決)
[打印本頁]
作者:
icestormer
時間:
2012-4-22 13:30
標題:
陣列及另一個小問題(已解決)
本帖最後由 icestormer 於 2012-5-3 09:33 編輯
原本想法是 當要設定格式時先呼叫 資料格式判斷 副程式 弄成陣列後 回傳
然後根據陣列內的(由0 -3)不同數字來對資料整欄進行不同的格式化
-------------------------------------------------------------------------------
我是想說 可不可以把
資料格式判斷
這個副程式
由 private sub workbook_open() 在打開EXCEL時就先做好
然後 當
判斷資料格式_1()需要用mydata()內的資料時就拿來使用
而不用要跑一次時就去執行一次資料格式判斷?
不知道能不能照我說的這樣改呢還是一定要要用時就得去執行一次取得陣列的值並回傳 謝謝幫忙
另外問小小問題. 我想利用以下程式碼關掉EXCEL(整個關掉)
不管我是採用ThisWorkbook.Close 或是Application.Quit或是 ActiveWindow.Close 還是三個一起用..都沒法整個關閉EXCEL
Application.DisplayAlerts = False
ThisWorkbook.Close
Application.Quit
ActiveWindow.Close
Application.DisplayAlerts = true
這是圖片連結,上述指令只會關關activeworkbook而已,這是為什麼呢?我是想要把它完完整整的關閉 就好像你沒有打開EXCEL一樣
[attach]10574[/attach]
作者:
register313
時間:
2012-4-22 14:34
回復
1#
icestormer
1.簡化一下
Sub 設定格式()
Dim mydata()
最後資料行 = [A5].End(xlDown).Row
資料長度 = [A5].End(xlToRight).Column
ReDim mydata(資料長度)
For i = 1 To 資料長度
Set Rng = Range("A6:A" & 最後資料行).Offset(0, i - 1)
Select Case Left(Cells(5, i), 1)
Case "%"
mydata(i) = 2
Rng.NumberFormatLocal = "0.00%"
Case "$"
mydata(i) = 1
Rng.NumberFormatLocal = "$#,##0.00"
Case "你"
mydata(i) = 3
Rng.NumberFormatLocal = "G/通用格式"
Case Else
mydata(i) = 0
Rng.NumberFormatLocal = "#,##0.00_ "
End Select
Next
End Sub
複製代碼
2.Application.Quit
作者:
c_c_lai
時間:
2012-4-22 14:59
回復
2#
register313
請教一下,您在程式�堳襲i了
Dim mydata() 為何接著又宣告一次 ReDim mydata(資料長度),其用意何在?
謝謝您!
作者:
GBKEE
時間:
2012-4-22 15:43
回復
3#
c_c_lai
ReDim 陳述式 在程序層次中用來重新配置動態陣列變數的儲存空間。 可查看Vba 的說明
Dim mydata() 為動態陣列
進入程序後可以 依所需再次宣告陣列元素長度
ReDim mydata(資料長度)
作者:
register313
時間:
2012-4-22 15:45
Sub 設定格式()
最後資料行 = [A5].End(xlDown).Row
資料長度 = [A5].End(xlToRight).Column
For i = 1 To 資料長度
Set Rng = Range("A6:A" & 最後資料行).Offset(0, i - 1)
Select Case Left(Cells(5, i), 1)
Case "%"
Rng.NumberFormatLocal = "0.00%"
Case "$"
Rng.NumberFormatLocal = "$#,##0.00"
Case "你"
Rng.NumberFormatLocal = "G/通用格式"
Case Else
Rng.NumberFormatLocal = "#,##0.00_ "
End Select
Next
End Sub
複製代碼
作者:
icestormer
時間:
2012-4-22 20:44
回復
3#
c_c_lai
如同GBKEE大解說一樣
用在陣列長度可能會變動的情況下 這寫法 很方便^^
作者:
icestormer
時間:
2012-4-22 20:47
本帖最後由 icestormer 於 2012-4-22 20:56 編輯
回復
5#
register313
感謝你的幫忙 來試看看^^
請問 我用了application.quit 是可以直接關掉EXCEL但關之荝還是會問我要不要存檔
使用 application.displayalerts=false 怎會沒有作用呢?(不想被問到有沒有要存檔就宜接關閉EXCEL)
application.displayalerts=false
application.quit
application.displayalerts=true
作者:
Hsieh
時間:
2012-4-22 21:56
回復
7#
icestormer
ThisWorkbook.Save
Application.Quit
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)