Помогите с ошибкой - VB
Формулировка задачи:
здравствуйте! вообщем такое дело: сегодня у друга на компьютере сделал вещь на VBA которая перекидывает из текстовика в excel и распредиляет там по листам. сделал таким образом: из access запускаю excel с макросом. макрос в свою очередь уже и занимается вышеописынами вещами. вроде бы все сделал и все работало. но когда пришел домой и попробывал протестировать на своем ПК, стал выдавать ошибку "syntax error" и выделять первую строку данного куска кода
Решение задачи: «Помогите с ошибкой»
textual
Листинг программы
<font color="blue">Option</font> <font color="blue">Explicit</font> <font color="#00AA00">' *************************************</font> <font color="#00AA00">' есть ли данный лист в данной книге</font> <font color="blue">Private</font> <font color="blue">Function</font> IsWorkSheetExist(w <font color="blue">As</font> Workbook, sSName$) <font color="blue">As</font> <font color="blue">Boolean</font> <font color="blue">Dim</font> c <font color="blue">As</font> <font color="blue">Object</font> <font color="blue">On</font> <font color="blue">Error</font> <font color="blue">GoTo</font> errНandle: <font color="blue">Set</font> c = w.Sheets(sSName) <font color="#00AA00">' Альтернативный вариант :</font> w.Worksheets(sSName).Cells(<font color="darkblue"><b>1</b></font>, <font color="darkblue"><b>1</b></font>) = w.Worksheets(sSName).Cells(<font color="darkblue"><b>1</b></font>, <font color="darkblue"><b>1</b></font>) IsWorkSheetExist = True <font color="blue">Exit</font> <font color="blue">Function</font> errНandle: IsWorkSheetExist = False <font color="blue">End</font> <font color="blue">Function</font> <font color="#00AA00">' *************************************</font> <font color="blue">Private</font> <font color="blue">Sub</font> Workbook_Open() <font color="blue">Dim</font> wb <font color="blue">As</font> Workbook, sh <font color="blue">As</font> Worksheet <font color="blue">Dim</font> a&, lLastRow&, k& <font color="blue">Dim</font> tmp$, sSheetName$ Application.ScreenUpdating = False Workbooks.OpenText Filename:=<font color="teal">"H:\on123.txt"</font>, Origin:=<font color="darkblue"><b>866</b></font>, StartRow:=<font color="darkblue"><b>1</b></font>, _ DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter _ :=True, Tab:=True, Semicolon:=False, Comma:=False, Space:=True, Other _ :=False, FieldInfo:=Array(Array(<font color="darkblue"><b>1</b></font>, <font color="darkblue"><b>1</b></font>), Array(<font color="darkblue"><b>2</b></font>, <font color="darkblue"><b>1</b></font>), Array(<font color="darkblue"><b>3</b></font>, <font color="darkblue"><b>1</b></font>)), _ TrailingMinusNumbers:=True <font color="blue">Set</font> wb = Workbooks(Workbooks.Count) wb.SaveAs Filename:=<font color="teal">"H:\on123123"</font>, FileFormat:=xlExcel5 <font color="#00AA00">'==bla bla bla )====</font> <font color="blue">With</font> wb.Worksheets(<font color="darkblue"><b>1</b></font>) lLastRow = .Cells.SpecialCells(xlLastCell).Row <font color="blue">For</font> a = <font color="darkblue"><b>1</b></font> <font color="blue">To</font> lLastRow tmp = <font color="blue">Mid</font>(.Cells(a, <font color="darkblue"><b>1</b></font>), <font color="darkblue"><b>1</b></font>, <font color="darkblue"><b>6</b></font>) <font color="blue">Select</font> <font color="blue">Case</font> tmp <font color="blue">Case</font> <font color="teal">"351352"</font>: sSheetName = <font color="teal">"оптс"</font> <font color="blue">Case</font> <font color="teal">"351356"</font>: sSheetName = <font color="teal">"56"</font> <font color="blue">Case</font> <font color="blue">Else</font>: sSheetName = <font color="teal">""</font> <font color="blue">End</font> <font color="blue">Select</font> <font color="blue">If</font> sSheetName = <font color="teal">""</font> <font color="blue">Then</font> <font color="#00AA00">' обработка непредвиденных случаев</font> <font color="blue">Else</font> <font color="blue">If</font> IsWorkSheetExist(wb, sSheetName) <font color="blue">Then</font> <font color="blue">Set</font> sh = .Parent.Worksheets(sSheetName) k = sh.Cells.SpecialCells(xlLastCell).Row + <font color="darkblue"><b>1</b></font> <font color="blue">Else</font> <font color="blue">Set</font> sh = .Parent.Worksheets.Add sh.<font color="blue">Name</font> = sSheetName k = <font color="darkblue"><b>1</b></font> <font color="blue">End</font> <font color="blue">If</font> <font color="#00AA00">'' rem можно и без функции IsWorkSheetExist</font> <font color="#00AA00">'' On Error Resume Next</font> <font color="#00AA00">'' Set sh = .Parent.Worksheets(sSheetName)</font> <font color="#00AA00">'' If Err.Number <> 0 Then</font> <font color="#00AA00">'' Err.Clear</font> <font color="#00AA00">'' Set sh = .Parent.Worksheets.Add</font> <font color="#00AA00">'' sh.Name = sSheetName</font> <font color="#00AA00">'' k = 1</font> <font color="#00AA00">'' Else</font> <font color="#00AA00">'' k = sh.Cells.SpecialCells(xlLastCell).Row + 1</font> <font color="#00AA00">'' End If</font> <font color="#00AA00">'' On Error GoTo 0</font> <font color="#00AA00">'' rem</font> .Rows(a).Copy sh.Cells(k, <font color="darkblue"><b>1</b></font>) <font color="blue">End</font> <font color="blue">If</font> <font color="blue">Next</font> a <font color="blue">End</font> <font color="blue">With</font> <font color="#00AA00">' wb.Worksheets(1)</font> Application.CutCopyMode = False Application.ScreenUpdating = True <font color="#00AA00">'=====bla bla ( =====</font> <font color="#00AA00">'Workbooks(<font color="teal">"start.xlsm"</font>).Close</font> <font color="blue">End</font> <font color="blue">Sub</font>
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д