Я импортирую данные из Microsoft Access, обнаружение ошибок, похоже, не работает. Если код пытается создать лист, который уже существует, продолжайте движение и задайте адресной лист на уже существующий лист. Любые советы будут оценены.Если лист не существует, создайте его (VBA Excel)
For ix = stWW To edWW
For modi = 0 To mdcnt - 1
On Error Resume Next
Sheets.Add(After:=Sheets(Sheets.Count)).Name = ix & " " & modvar(modi)
On Error GoTo 0
Set DestinationSheet = Worksheets(ix & " " & modvar(modi))
'strSQL2 = "SELECT 1302_Scan.* FROM 1302_Scan;"
strSQL = "SELECT " & ix & "_" & modvar(modi) & ".* FROM " & ix & "_" & modvar(modi) & ";"
'MsgBox strSQL & "|" & strSQL
DestinationSheet.Cells.Clear
, использованный ранее в коде, может вызывать ошибку при использовании предложения @ sous2817.
On Error GoTo continue
Do While Not IsNull(modvar(ii))
mdcnt = mdcnt + 1
ii = ii + 1
Loop
continue:
On Error GoTo 0
Спасибо большое, моя проблема практически решить. Последний вопрос, который у меня есть, заключается в том, что если лист уже существует, он говорит: «Нельзя переименовать листок с тем же именем, что и другой лист, ссылочную библиотеку объектов или книгу, на которую ссылается визуальный базовый. Я использовал ошибку goto (добавлено изменение в код выше), но после этого я поместил ошибку goto, поэтому я думал, что это не вызовет проблемы? – user2457541
@ user2457541 Логика, вероятно, такая же право? Переименуйте лист на что-то, и если это имя листа уже существует, пропустите эту часть и Если это так, просто добавьте еще одно сообщение об ошибке рядом прямо над строкой, которая переименует ваш код и по ошибке goto 0 сразу после строки. Если это не так, вам придется отредактировать сообщение и я сделаю еще один удар. – sous2817
Я отредактировал свой вопрос. То, что вы говорите, имеет смысл, я пытался сделать аналогичную вещь в основном с помощью iserror (ws.name). Но код выполняется так, как будто on error resume next is not there. – user2457541