Vba Stock в Workbook.open [Продолжает, если я нажимаю F5]

100
14

Когда я попытался открыть файл excel из моего макроса: у меня проблема 1004, и если я отлаживаю код и нажимаю F5, чтобы продолжить, файл открывается без каких-либо проблем, также, если я отлаживаю работу строки по строке.


Sub openFile2(ruta, fich, destino As Worksheet)

Application.CutCopyMode = False

Dim aux As String
aux = ruta & "\" & fich
ChDir ruta
Workbooks.Open Filename:=fich

End Sub


Мои значения


Ruta​​STRONG >


"C:\Users\Usuario\Desktop\Swap\@& & Informes && @\Informes 2G\Input"



фич


"CNA_GsmRel_Z2_23052013.xls"



Также я пробовал:


    aux = ruta & "\" & fich
Workbooks.Open Filename:=aux

спросил(а) 2021-01-25T17:29:58+03:00 4 месяца, 2 недели назад
1
Решение
63

Workbooks.Open требуется полный путь Filename, поэтому он должен быть Workbooks.Open(FileName:=aux) вместо Workbooks.Open(FileName:=fich)


Объявление переменной рабочей книги wkb дает вам контроль над книгой для дальнейших манипуляций.


Сохраните книгу, в которой находится код перед запуском кода.

Используйте более безопасный код ниже.


Sub sample()
ruta = "C:\Users\Usuario\Desktop\Swap\@&&Informes&&@\Informes 2G\Input"
fich = "CNA_GsmRel_Z2_23052013.xls"
openFile2 ruta, fich, ThisWorkbook.Sheets(1)

End Sub

Sub openFile2(ruta, fich, destino As Worksheet)

Dim aux As String
aux = ruta & "\" & fich

Dim wkb As Workbook

If IsWorkBookOpen(aux) Then
Set wkb = Workbooks(fich)
Else
Set wkb = Workbooks.Open(FileName:=aux)
End If

End Sub

Function IsWorkBookOpen(FileName As String)
Dim ff As Long, ErrNo As Long

On Error Resume Next
ff = FreeFile()
Open FileName For Input Lock Read As #ff
Close ff
ErrNo = Err
On Error GoTo 0

Select Case ErrNo
Case 0: IsWorkBookOpen = False
Case 70: IsWorkBookOpen = True
Case Else: Error ErrNo
End Select
End Function

ответил(а) 2021-01-25T17:29:58+03:00 4 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема