Board logo

標題: [發問] 請教一下此句巨集錯誤如何改? [打印本頁]

作者: t8899    時間: 2014-4-7 14:33     標題: 請教一下此句巨集錯誤如何改?

本帖最後由 t8899 於 2014-4-7 14:34 編輯

Sub Ma3333()
Dim a As String
set a=v:\program\supertsc" & "\" & Format(Date, "eemmdd)
Workbooks.Open Filename:="a - 5 & ".xls"
"a - 5 & ".xls".Activate

End Sub
另外一個問題
Sub Macro2()
for k=1 to 15
On Error Resume Next
Workbooks.Open Filename:="v:\program\supertsc" & "\" & Format(Date, "eemmdd")-k & ".xls"
  next
123:
End Sub
1.假如開的檔案存在則跳到123的語法是???
2只能開到 1030401 , 接下是 1030399  不是 1030331??
作者: GBKEE    時間: 2014-4-7 15:58

回復 1# t8899
  1. Option Explicit
  2. Sub Ma3333()
  3.     Dim A As Workbook
  4.     Set A = Workbooks.Open("v:\program\supertsc\" & Format(Date, "eemmdd"))
  5.     Workbooks.Open Filename:="a - 5.xls"
  6.     'Workbooks.Open Filename:="a - 5" & ".xls"  '或是
  7.     Workbooks("a - 5" & ".xls").Activate
  8.     'Workbooks("a - 5.xls").Activate            '或是
  9. End Sub
  10. Sub Macro2()  '1.假如開的檔案存在則跳到123的語法是???
  11.     '2只能開到 1030401 , 接下是 1030399  不是 1030331  ****看不懂???
  12.     Dim k As Integer, A As String
  13.     For k = 1 To 15
  14.     A = "v:\program\supertsc" & "\" & Format(Date, "eemmdd") - k & ".xls"  '完整的路徑檔案名稱
  15.     If Dir(A) <> "" Then   '檔案存在則 Dir(A)傳回 檔案名稱
  16.         Workbooks.Open A
  17.         Exit For   '離開回圈
  18.         ' GoTo 123 '或是 到 123
  19.     End If
  20.   Next
  21. 123:
  22. End Sub
複製代碼

作者: t8899    時間: 2014-4-7 18:57

GBKEE 發表於 2014-4-7 15:58
2只能開到 1030401 , 接下是 1030399  不是 1030331  ****看不懂???

當K=8 傳回是 v:\program\supertsc\1030399.xls
不是 v:\program\supertsc\1030331.xls ??
作者: t8899    時間: 2014-4-7 19:52

回復  t8899
GBKEE 發表於 2014-4-7 15:58


Set A = Workbooks.Open("v:\program\supertsc\" & Format(Date, "eemmdd")) 此行執行完就會開啟檔案1030407.XLS
導致下一行 Workbooks.Open Filename:="a - 5.xls"
出問題==>"應用程式或物件定義錯誤??
作者: t8899    時間: 2014-4-7 20:32

本帖最後由 t8899 於 2014-4-7 20:40 編輯
回復  t8899
GBKEE 發表於 2014-4-7 15:58
A = "v:\program\supertsc" & "\" & Format(Date, "eemmdd") - k & ".xls"  '完整的路徑檔案名稱
    If Dir(A) <> "" Then

檔案名稱的後面有多餘的也加入符合條件的判斷,要怎麼改?
又要如何開啟正確的檔案名稱?
1030407.xls
1030407adef.xls
1030407bf.xls
作者: GBKEE    時間: 2014-4-7 20:33

本帖最後由 GBKEE 於 2014-4-7 20:53 編輯

回復 4# t8899
  1. Format(Date - k, "eemmdd")
複製代碼
當前的所在目錄沒有這檔案,會有應用程式或物件定義錯誤
  1. MsgBox CurDir  '當前的所在目錄
  2. Workbooks.Open Filename:="a - 5.xls"
  3. 'Workbooks.Open Filename:="完整路徑檔案名稱.xls"
複製代碼
檔案名稱的後面有多餘的也加入符合條件的判斷,要怎麼改?
  1. Option Explicit
  2. Sub Ex()
  3.     Dim k
  4.     k = "1030407.xls"
  5.     If k Like "#######.xls" Then MsgBox k   '# ->數字
  6.     k = "1030407.xls"
  7.     If k Like "######.xls" Then MsgBox k    '? ->字元
  8.     k = "1030407 adef.xls"
  9.     If k Like "####### ????.xls" Then MsgBox k
  10.     k = "1030407 adef.xls"
  11.     If k Like "####### ???.xls" Then MsgBox k
  12.     k = "1030407 bf.xls"
  13.     If k Like "####### ??.xls" Then MsgBox k
  14.     k = "1030407 bf.xls"
  15.     If k Like "####### ???.xls" Then MsgBox k
  16. End Sub
複製代碼

作者: t8899    時間: 2014-4-7 20:43

回復  t8899 當前的所在目錄沒有這檔案,會有應用程式或物件定義錯誤
GBKEE 發表於 2014-4-7 20:33

為何set 指令就會執行開啟的動作?(還沒真正執行open)
作者: GBKEE    時間: 2014-4-7 20:56

回復 7# t8899
Set ->指定變數為物件
  1. Set A = Workbooks.Open("v:\program\supertsc\" & Format(Date, "eemmdd"))
複製代碼
Workbooks.Open 是開啟檔案的指令
作者: t8899    時間: 2014-4-8 06:48

本帖最後由 t8899 於 2014-4-8 06:51 編輯
回復  t8899 當前的所在目錄沒有這檔案,會有應用程式或物件定義錯誤檔案名稱的後面有多餘的也加入符合條件的 ...
GBKEE 發表於 2014-4-7 20:33

    Dim K As Integer, B As String
    For K = 0 To 0
    B = "v:\program\supertsc" & "\" & 1030403 - K & "?????" & ".xls" '完整的路徑檔案名稱
        [o1] = B
         If Dir(B) <> "" Then
      Workbooks.Open Filename:=B
       end if
        next

檔名為 1030403注意有問題.xls
檢查檔案有過
但開檔過不了 ?
[attach]17953[/attach]
作者: GBKEE    時間: 2014-4-8 07:48

回復 9# t8899
  1.    Dim K As Integer, B As String
  2.     For K = 0 To 0
  3.     B = "v:\program\supertsc" & "\" & 1030403 - K & "?????" & ".xls" '完整的路徑檔案名稱
  4.     '請你必須知道  1030403 - K & "?????" & ".xls" <> 1030403注意有問題.xls
  5.         [o1] = B
  6.          MsgBOX Dir(B)   '可知檔案是否存在
  7.          If Dir(B) <> "" Then
  8.       Workbooks.Open Filename:=B
  9.        end if
  10.         next

  11. 檔名為 1030403注意有問題.xls
複製代碼

作者: t8899    時間: 2014-4-9 05:55

回復  t8899
GBKEE 發表於 2014-4-8 07:48

謝謝,我的問題應該改成
我想找C 根錄下的檔案 (只有根目錄)
檔名為1030415.xls
包括 1030415後面都算 (副檔名限xls)
例如
1030415a.xls
1030415b.xls
1030415123b.xls
....
找到後再開檔,不知此程序如何寫?
作者: GBKEE    時間: 2014-4-9 06:08

回復 11# t8899
  1. Option Explicit
  2. Sub Ex()
  3.     Dim S As String
  4.     S = Dir("C:\*.xls")   '傳回字串: 副檔名為xls的檔案
  5.     Do While S <> ""
  6.         If S Like "1030415*" Then MsgBox S
  7.         S = Dir            '繼續依上一次的條件, 傳回字串: 副檔名為xls的檔案
  8.     Loop
  9. End Sub
複製代碼





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