返回列表 上一主題 發帖

[發問] 想請問自動存檔路徑如何讀取讀儲存格做路徑呢?

本帖最後由 luhpro 於 2015-6-5 23:52 編輯
ActiveWorkbook.SaveAs Filename:="D:\目錄\" & Range("A2") & "-" & Format(Range("B2"), "yyyymmddhhss") ...
starry1314 發表於 2015-6-4 17:10


ActiveWorkbook.SaveAs Filename:="D:\目錄\" & Range("c2") & "\" & Range("A2") & "-" & Format(Range("B2"), "yyyymmddhhss") & ".xlsm"

字串合併時應注意以下幾點 :
1. "(雙引號) 必須成對, 且兩個 " 中間包著字串而非變數或保留字.
2. 相鄰字串間可用 & 來連接成一個字串

底下是我常用的一些字串處理或測試技巧:
1. 如果字串太長不易判斷結果是否正確,
可以於賦值後依次附加字串給變數便於偵錯,
例如上式可以改成 :
  1. Dim sStr$
  2. sStr= "D:\目錄\" & Range("c2")
  3. sStr= sStr &  "\" & Range("A2")
  4. sStr= sStr &  "-" & Format(Range("B2"), "yyyymmddhhss") & ".xlsm"
  5. ActiveWorkbook.SaveAs Filename:= sStr
複製代碼
2. 也可以用 _(一個半形空白文字 連接著 一個半形底線文字) 來拆行(但不可以把字串分拆兩行),例如原式改成 :
  1. ActiveWorkbook.SaveAs Filename:="D:\目錄\" &  _
  2. Range("c2") & "\" & Range("A2") &  _
  3. "-" & Format(Range("B2"), "yyyymmddhhss") & ".xlsm"
複製代碼
這樣分拆等同只有一行指令(與原式的效果完全相同).
好處是便於指令判讀 與 避開單行指令長度限制.

3. 除蟲(Debug)時可以把中斷點設在該行並執行至該行暫停,
接著拷貝該行開啟 "即時運算" 視窗,
先打上一個 ? 再於其右方貼上該行指令後按下 Enter 按鍵,
看看出來的結果是否正確,
持續修改 ? 後的內容直到結果正確,
再將其更新到程式中即可.

TOP

回復  luhpro
        請問你所謂的疊加字串事
sstr
sstr
sstr
會變成第2個sstr繼續接著第一個ss ...
starry1314 發表於 2015-6-5 23:55

假設 :
sStr="123"
sStr= sStr & "456"
sStr= sStr & "789"

則執行後 sStr= "123456789"

TOP

        靜思自在 : 布施如播種,以歡喜心滋潤種子,才會發芽。
返回列表 上一主題