Visual basic:查找打开的Excel文件并将其选中
我希望VBA查找名为“yyyymmdorders.csv”的文件并选择该文件 因此,当打开“20140522orders.csv”时,它应该会找到该文件 这是我的代码:Visual basic:查找打开的Excel文件并将其选中,excel,csv,vba,Excel,Csv,Vba,我希望VBA查找名为“yyyymmdorders.csv”的文件并选择该文件 因此,当打开“20140522orders.csv”时,它应该会找到该文件 这是我的代码: Sub controle() Dim intSrcColNr As Integer Dim strSheetname As String Dim strWorkbookname As String Dim strCsv As String Dim wkb As Workbook
Sub controle()
Dim intSrcColNr As Integer
Dim strSheetname As String
Dim strWorkbookname As String
Dim strCsv As String
Dim wkb As Workbook
Application.ScreenUpdating = False
strSheetname = ActiveSheet.Name
strWorkbookname = ActiveWorkbook.Name
在打开的Excel文件中查找yyyymmdorders.csv:
For Each wkb In Workbooks
If InStr(1, wkb.Name, "Orders.csv") <> 0 Then
strCsv = wkb.Name
End If
Next
如果csv文件未打开
CSVerror:
MsgBox "File: " & strCsv & ".csv not open"
Sheets("procédure").Select
End Sub
虽然我打开了CSV文件,但它显示错误:“文件:20140522Orders.CSV.CSV未打开”
我错过了什么?或者有其他方法可以做到这一点吗?您遗漏了一些东西:如果您将一行标记为
CSVError
,这并不意味着代码在那里执行/直到结束子项才执行。如果需要以这种方式处理错误,可以在CSVError
行之前插入一个End
,这样,如果文件打开,程序将停止在那里,否则跳转到CSVError
并停止在End Sub
处
Sub controle()
Dim intSrcColNr As Integer
Dim strSheetname As String
Dim strWorkbookname As String
Dim strCsv As String
Dim wkb As Workbook
Application.ScreenUpdating = False
strSheetname = ActiveSheet.Name
strWorkbookname = ActiveWorkbook.Name
For Each wkb In Workbooks
If InStr(1, wkb.Name, "Orders.csv") <> 0 Then
strCsv = wkb.Name
End If
Next
On Error GoTo CSVerror
Windows(strCsv).Activate
End
CSVerror:
MsgBox "File: " & strCsv & " not open"
Sheets("procédure").Select
End Sub
除非未打开csv文件。
表示某些代码,否则例程将直接从激活
显示错误消息。如果在此间隙中添加Debug.Print“Activate OK”
Exit Sub
,则会显示“Acivate OK”而不是错误消息。
Sub controle()
Dim intSrcColNr As Integer
Dim strSheetname As String
Dim strWorkbookname As String
Dim strCsv As String
Dim wkb As Workbook
Application.ScreenUpdating = False
strSheetname = ActiveSheet.Name
strWorkbookname = ActiveWorkbook.Name
For Each wkb In Workbooks
If InStr(1, wkb.Name, "Orders.csv") <> 0 Then
strCsv = wkb.Name
End If
Next
On Error GoTo CSVerror
Windows(strCsv).Activate
End
CSVerror:
MsgBox "File: " & strCsv & " not open"
Sheets("procédure").Select
End Sub
For Each wkb In Workbooks
If InStr(1, wkb.Name, "Orders.csv") <> 0 Then
strCsv = wkb.Name
End If
Next
If strCsv = "" Then
MsgBox "File: " & strCsv & " not open"
Sheets("procédure").Select
Else
Windows(strCsv).Activate
End If