Не работает сохранение, выдает ошибку excel файл https://yadi.sk/i/7-S3FoTjr_TzQw Add(MainForm,9161318,525,238) { Width=391 Height=268 Caption="In_Out_Excel" Point(onClose) link(onClose,604810:doCompare,[]) } Add(LED,1408573,574,189) { Left=85 Top=5 } Add(IndexToChanel,4742625,525,196) { link(onEvent1,1408573:doOff,[]) link(onEvent2,1408573:doOn,[]) } Add(Button,11796961,315,49) { Left=5 Top=10 Width=65 Caption="Open Excel" link(onClick,420540:doExecute,[]) } Add(Button,12390211,406,175) { Left=10 Top=40 Caption="Close" link(onClick,13900935:doWork2,[]) } Add(ODialog,420540,364,49) { Filter="Excel(.xls,.xlsx,.xlsm)|*.xls;*.xlsx;*.xlsm" } Add(ComboBox,10946710,525,63) { Left=120 Top=10 Width=140 Height=21 Text="Выбрать лист" DataType=1 Point(doSelect) link(onClick,10692435:doSheet,[(564,76)(564,125)(445,125)(445,160)]) } Add(If_else,11782534,469,63) { Type=5 Op2=Integer(0) link(onTrue,10946710:doAdd,[]) link(onFalse,10946710:doSelect,[(513,76)(513,97)]) } Add(Button,14425351,217,231) { Left=10 Top=95 Caption="Read" link(onClick,469012:doString,[]) } Add(Edit,5305046,231,182) { Left=75 Top=95 Text="2" DataType=2 } Add(Label,4501845,231,49) { Left=90 Top=75 Caption="Row" } Add(Label,613563,273,49) { Left=135 Top=75 Width=39 Height=17 Caption="Column" } Add(Edit,16579324,273,182) { Left=130 Top=95 Text="1" DataType=2 } Add(FormatStr,469012,266,231) { Mask="%1;%2" link(onFString,10692435:doRead,[(382,237)(382,153)]) link(Str1,5305046:Text,[(272,222)(237,222)]) link(Str2,16579324:Text,[]) } Add(Button,8636081,217,140) { Left=10 Top=125 Caption="Write" link(onClick,1368601:doString,[]) } Add(Edit,663925,231,91) { Left=75 Top=125 Text="2" DataType=2 } Add(Edit,10420173,273,91) { Left=130 Top=125 Text="1" DataType=2 } Add(FormatStr,1368601,266,140) { DataCount=3 Mask="%1;%2;%3" link(onFString,10692435:doWrite,[]) link(Str1,663925:Text,[(272,135)(237,135)]) link(Str2,10420173:Text,[]) link(Str3,13839568:Text,[(286,131)(328,131)]) } Add(Edit,13839568,322,91) { Left=190 Top=125 Width=175 } Add(VBJScript,10692435,469,133) { @Hint=#16:Query SQL Server| WorkPoints=#6:doOpen|7:doWrite|6:doRead|7:doSheet|7:doMacro|6:doSave|7:doClose| EventPoints=#6:onShet|7:onMacro|7:onCells|6:onOpen| Script=#0:|9:Dim strIn|10:Dim strOut|10:Dim NumRow|10:Dim NumCol|5:Dim i|5:Dim j|12:Dim objExcel|0:|22:Sub doWork(Data,Index)|18: Select Case Index|103: Case "doOpen" 'На вход подаётся строка, содержащая полный путь к файлу|52: Set objExcel = CreateObject("Excel.Application")|52: Set objWorkbook = objExcel.Workbooks.Open (Data)|82: For i=1 To objWorkbook.Sheets.Count 'Листы начинаются не с "0", а с "1"|67: sys.onShet objWorkbook.Sheets(i).Name 'Выводим имя наружу |9: Next|74: 'j=objWorkbook.macro.Count 'Узнаём количество макросов|88: ' For i=1 To j 'Нумерация начинаются не с "0", а с "1" |79: ' strIn = objWorkbook.macro(i).Name 'Узнаём имя очередного макроса |67: ' sys.onMacro strIn 'Выводим имя наружу |15: ' Next |18: sys.onShet 0 |16: sys.onOpen 1|143: Case "doRead" 'На вход подаётся строка, содержащая (разделитель -- точка с запятой): НомерСтроки;НомерКолонки;|22: strIn = CStr(Data)|28: i = InStr(1,strIn,";",0)|37: NumRow = CLng(Mid(strIn, 1, i-1))|33: NumCol = CLng(Mid(strIn,i+1))|61: strOut = objExcel.ActiveSheet.Cells(NumRow, NumCol).Value|27: sys.onCells strOut |163: Case "doWrite" 'На вход подаётся строка, содержащая (разделитель -- точка с запятой): НомерСтроки;НомерКолонки;ЗаписываемоеЗначение|22: strIn = CStr(Data)|28: i = InStr(1,strIn,";",0)|37: NumRow = CLng(Mid(strIn, 1, i-1))|30: j = InStr(i+1,strIn,";",0)|41: NumCol = CLng(Mid(strIn, i+1, j-i-1))|28: strIn = Mid(strIn, j+1)|58: objExcel.ActiveSheet.Cells(NumRow, NumCol).Value=strIn|93: Case "doSheet" 'На вход подаётся строка, содержащая имя Листа|32: objExcel.Sheets(Data).Select|44: objExcel.ActiveSheet.Cells(1, 1).Select |95: Case "doMacro" 'На вход подаётся строка, содержащая имя Макроса|63: objExcel.Application.Run (Data) |19: 'sys.onMacro 1 |1: |16: Case "doSave"|31: objExcel.DisplayAlerts = False|17: objWorkbook.Save|1: |17: Case "doClose"|23: On Error Resume Next|17: objExcel.Quit|26: Set objExcel = Nothing|16: sys.onOpen 0|22: On Error Goto 0 |11: End Select|0:|7:End Sub|0:| UseName=0 link(onShet,11782534:doCompare,[(508,139)(508,118)(459,118)(459,69)]) link(onCells,3080051:doText,[]) link(onOpen,4742625:doEvent,[(513,160)(513,202)]) } Add(Button,12318762,217,315) { Left=10 Top=155 Caption="Macro" link(onClick,640997:doData,[]) } Add(Edit,15034254,266,273) { Left=75 Top=155 Width=154 Text="PrintTbl" } Add(DoData,640997,266,315) { link(onEventData,10692435:doMacro,[(342,321)(342,167)]) link(Data,15034254:Text,[]) } Add(If_else,604810,574,259) { Op2=Integer(1) link(onTrue,13900935:doWork3,[(616,265)(616,301)(459,301)]) link(Op1,1408573:Value,[]) } Add(HubEx,13900935,455,175) { link(onEvent,10692435:doClose,[]) } Add(Edit,3080051,525,147) { Left=190 Top=95 Width=175 } Add(Label,6730095,231,42) { Left=130 Top=185 Width=26 Height=17 Caption="Row" } Add(Label,2847495,266,42) { Left=285 Top=185 Width=39 Height=17 Caption="Column" } Add(Button,15911981,357,168) { Left=125 Top=40 Caption="Save" link(onClick,10692435:doSave,[]) }
Редактировалось 1 раз(а), последний 2020-09-15 21:00:41
|