Board logo

標題: [發問] 想請問自動存檔路徑如何讀取讀儲存格做路徑呢? [打印本頁]

作者: starry1314    時間: 2015-6-4 17:10     標題: 想請問自動存檔路徑如何讀取讀儲存格做路徑呢?

本帖最後由 starry1314 於 2015-6-4 17:14 編輯

ActiveWorkbook.SaveAs Filename:="D:\目錄\" & Range("A2") & "-" & Format(Range("B2"), "yyyymmddhhss") & ".xlsm"
比如資料夾 目錄\Q區
B2=Q 或是 Q區

要如何修改可讓目錄\後方是讀取B2的Q區做為路徑呢?

錯誤值....
ActiveWorkbook.SaveAs Filename:="D:\目錄\  & range("c2")\" & Range("A2") & "-" & Format(Range("B2"), "yyyymmddhhss") & ".xlsm"
作者: luhpro    時間: 2015-6-5 23:51

本帖最後由 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 按鍵,
看看出來的結果是否正確,
持續修改 ? 後的內容直到結果正確,
再將其更新到程式中即可.
作者: starry1314    時間: 2015-6-5 23:55

回復 2# luhpro


        請問你所謂的疊加字串事
sstr
sstr
sstr
會變成第2個sstr繼續接著第一個sstr完成後的數據 繼續接著下去嗎??

感謝指導除蟲技巧....
作者: luhpro    時間: 2015-6-6 00:17

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

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

則執行後 sStr= "123456789"
作者: starry1314    時間: 2015-6-6 00:23

回復 4# luhpro


    了解~真是好用的技巧 可以一步一步偵錯,有時一整串真的很難找出錯在哪裡




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)