Я хотел бы скопировать данные из файла csv в рабочий лист excel. Есть 11 файлов csv. До сих пор у меня есть это (это модифицированная версия от предыдущей должности):Подзаголовок ошибки вне диапазона в этом скрипте excel vba
Sub importData()
Dim filenum(0 To 10) As Long
filenum(0) = 052
filenum(1) = 060
filenum(2) = 064
filenum(3) = 068
filenum(4) = 070
filenum(5) = 072
filenum(6) = 074
filenum(7) = 076
filenum(8) = 178
filenum(9) = 180
filenum(10) = 182
Dim sh1 As Worksheet
On Error GoTo my_handler
For lngPosition = LBound(filenum) To UBound(filenum)
'Windows(filenum(lngPosition) & ".csv").Activate
Workbooks.Add(filenum(lngPosition) & ".csv").Activate
Range("A1").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.Copy
Windows("30_graphs_w_Macro.xlsm").Activate
Set sh1 = Worksheets(filenum(lngPosition)).Activate
Range("A69").Paste
Range("A69").Select
Next lngPositionlngPositionlngPosition
my_handler:
MsgBox "All done."
Exit Sub
End Sub
Этот код дает мне подстрочный из ошибки диапазона на линии
Set sh1 = Worksheets(filenum(lngPosition)).Activate
Пожалуйста, помогите мне исправить это , А также, если есть какие-либо другие советы о том, как улучшить этот код, пожалуйста, дайте мне знать
Сначала удалите строку '.Activate'. Если это не поможет, поместите 'MsgBox filenum (lngPosition)' перед строкой 'Set sh1..' и посмотрите, что говорит MsgBox. Убедитесь, что у вас есть лист с таким же именем. –
ОК .. Я только что видел это. файл 052.csv открывается .. и затем я получаю сообщение, что оно выходит за пределы диапазона. Одна вещь, которую я заметил, это то, что файл открывается как файл [только для чтения]. Когда я открываю его вручную, он открывается noramlly – user2883071
@mehow: К сожалению, не было вашего комментария. Дайте мне знать, если вы хотите опубликовать его в качестве ответа, и я удалю свой ответ. –