Вверх ↑
Ответов: 537
Рейтинг: 14
#1: 2018-12-23 16:56:04 ЛС | профиль | цитата
Как автоматически сохранять excel? Сейчас при закрытии программы появляется окошко для сохранения. Нужно чтобы сохранялся excel файл сам без окошка, например по нажатию на кнопку все записи сами сохраняются, но документ не закрывается и с ним можно работать дальше. Так можно сделать?

Add(Button,11796961,238,147)
{
Left=5
Top=10
Width=65
Caption="Open Excel"
link(onClick,420540:doExecute,[])
}
Add(Hub,9982022,336,147)
{
link(onEvent1,10946710:doClear,[(440,153)(440,174)])
link(onEvent2,10692435:doOpen,[(361,160)(361,237)])
}
Add(ODialog,420540,287,147)
{
Filter="Excel(.xls,.xlsx)|*.xls;*.xlsx"
link(onExecute,9982022:doEvent1,[])
}
Add(ComboBox,10946710,448,161)
{
Left=120
Top=10
Width=140
Height=21
Text="Выбрать лист"
DataType=1
Point(doSelect)
link(onClick,10692435:doSheet,[(487,174)(487,223)(368,223)(368,258)])
}
Add(If_else,11782534,392,161)
{
Type=5
Op2=Integer(0)
link(onTrue,10946710:doAdd,[])
link(onFalse,10946710:doSelect,[(436,174)(436,195)])
}
Add(Label,4501845,154,147)
{
Left=75
Top=55
Caption="Row"
}
Add(Label,613563,196,147)
{
Left=135
Top=55
Width=39
Height=17
Caption="Column"
}
Add(Button,8636081,140,238)
{
Left=10
Top=80
Caption="Write"
link(onClick,1368601:doString,[])
}
Add(Edit,663925,154,189)
{
Left=75
Top=80
Text="2"
DataType=2
}
Add(Edit,10420173,196,189)
{
Left=130
Top=80
Text="1"
DataType=2
}
Add(FormatStr,1368601,189,238)
{
DataCount=3
Mask="%1;%2;%3"
link(onFString,10692435:doWrite,[])
link(Str1,663925:Text,[(195,233)(160,233)])
link(Str2,10420173:Text,[])
link(Str3,1087963:Text,[(209,230)(244,230)])
}
Add(VBJScript,10692435,392,231)
{
@Hint=#16:Query SQL Server|
WorkPoints=#6:doOpen|7:doWrite|6:doRead|7:doSheet|7:doMacro|7:doClose|
EventPoints=#6:onShet|7:onMacro|7:onCells|6:onOpen|
Script=#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|21: sys.onCells 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 |17: Case "doClose"|17: objExcel.Quit|26: Set objExcel = Nothing|20: sys.onOpen 0 |11: End Select|0:|7:End Sub|
UseName=0
link(onShet,11782534:doCompare,[(431,237)(431,216)(382,216)(382,167)])
link(onOpen,4742625:doEvent,[])
}
Add(Memo,1087963,238,189)
{
Left=10
Top=115
Width=475
Height=210
ScrollBars=2
}
Add(MainForm,9161318,448,294)
{
Width=507
Height=372
Caption="In_Out_Excel"
Point(onClose)
link(onClose,604810:doCompare,[])
}
Add(LED,1408573,497,245)
{
Left=85
Top=5
}
Add(IndexToChanel,4742625,448,252)
{
link(onEvent1,1408573:doOff,[])
link(onEvent2,1408573:doOn,[])
}
Add(If_else,604810,497,315)
{
Op2=Integer(1)
link(onTrue,10692435:doClose,[(541,321)(541,290)(383,290)(383,272)])
link(Op1,1408573:Value,[])
}
карма: 4

0