With Application.FileSearch
Posted: Fri Sep 20, 2013 11:45 am
ปัจจุบัน ผมใช้ Excel version 2010 โดยติดปัญหาที่ไม่สามารถใช้คำสั่งนี้ ตอน run macro ใน version นี้ได้ครับ ติดปัญหาตรง
With Application.FileSearch ครับ จะขึ้น Error
ผมเป็นไม่ใช่มืออาชีพ ด้าน VBA ครับ อาศัย ไฟล์ เก่า ที่ทำไว้แล้วปรับปรุงเอาครับ ยังไม่มีความรู้เรื่อง code มากนักครับ
ขอบคุณครับ
Sub Auto_open()
'
' IP IF Macro
' Macro edited 28/0813 by Ratthasart
' Saves for Infinity Import
Dim Y As Integer
Dim LotNo
Dim new_filename
Dim save_filename
LotNo = InputBox("What is the Lot Number?")
ChDrive "L:"
ChDir "L:\DATA_infinity_import\IF\"
With Application.FileSearch
.Filename = "i" & LotNo & ".xls"
.LookIn = CurDir()
If .Execute(SortBy:=msoSortByFileName, _
SortOrder:=msoSortOrderAscending) = 0 Then
MsgBox prompt:="Lot was not found. You will be returned to InfinityQS.", Buttons:=vbExclamation
Application.Quit
Exit Sub
End If
Workbooks.OpenText Filename:=.Filename, _
Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), _
Array(9, 1))
End With
ChDir "L:\DATA_infinity_import\IF\in process\"
save_filename = "L:\DATA_infinity_import\IF\in process\" & "i" & LotNo & ".xls"
With Application.FileSearch
.Filename = "L:\DATA_infinity_import\IF\in process\" & "i" & LotNo & ".xls"
.LookIn = CurDir()
If .Execute(SortBy:=msoSortByFileName, _
SortOrder:=msoSortOrderAscending) > 0 Then
Kill "L:\DATA_infinity_import\IF\in process\" & LotNo & ".xls"
End If
ActiveWorkbook.SaveAs Filename:=save_filename, FileFormat:=xlTextWindows
ChDir "L:\DATA_infinity_import\IF\"
Kill "i" & LotNo & ".xls"
Kill "IF_ip.xls"
save_filename = "L:\DATA_infinity_import\IF\IF_ip.xls"
ActiveWorkbook.SaveAs Filename:=save_filename, FileFormat:=xlTextWindows
ActiveWorkbook.Close SaveChanges:=False
Application.Quit
End With
End Sub
With Application.FileSearch ครับ จะขึ้น Error
ผมเป็นไม่ใช่มืออาชีพ ด้าน VBA ครับ อาศัย ไฟล์ เก่า ที่ทำไว้แล้วปรับปรุงเอาครับ ยังไม่มีความรู้เรื่อง code มากนักครับ
ขอบคุณครับ
Code: Select all
'
' IP IF Macro
' Macro edited 28/0813 by Ratthasart
' Saves for Infinity Import
Dim Y As Integer
Dim LotNo
Dim new_filename
Dim save_filename
LotNo = InputBox("What is the Lot Number?")
ChDrive "L:"
ChDir "L:\DATA_infinity_import\IF\"
With Application.FileSearch
.Filename = "i" & LotNo & ".xls"
.LookIn = CurDir()
If .Execute(SortBy:=msoSortByFileName, _
SortOrder:=msoSortOrderAscending) = 0 Then
MsgBox prompt:="Lot was not found. You will be returned to InfinityQS.", Buttons:=vbExclamation
Application.Quit
Exit Sub
End If
Workbooks.OpenText Filename:=.Filename, _
Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), _
Array(9, 1))
End With
ChDir "L:\DATA_infinity_import\IF\in process\"
save_filename = "L:\DATA_infinity_import\IF\in process\" & "i" & LotNo & ".xls"
With Application.FileSearch
.Filename = "L:\DATA_infinity_import\IF\in process\" & "i" & LotNo & ".xls"
.LookIn = CurDir()
If .Execute(SortBy:=msoSortByFileName, _
SortOrder:=msoSortOrderAscending) > 0 Then
Kill "L:\DATA_infinity_import\IF\in process\" & LotNo & ".xls"
End If
ActiveWorkbook.SaveAs Filename:=save_filename, FileFormat:=xlTextWindows
ChDir "L:\DATA_infinity_import\IF\"
Kill "i" & LotNo & ".xls"
Kill "IF_ip.xls"
save_filename = "L:\DATA_infinity_import\IF\IF_ip.xls"
ActiveWorkbook.SaveAs Filename:=save_filename, FileFormat:=xlTextWindows
ActiveWorkbook.Close SaveChanges:=False
Application.Quit
End With
End Sub