Вверх ↑
Этот топик читают: Гость
Ответов: 7
Рейтинг: 0
#1: 2019-04-23 10:56:46 ЛС | профиль | цитата
Приветствую...
Появилась задачка , и не могу её решить правильно. Думаю принципиально что то не понимаю.
Есть три списка ( два буду тянуть с txt или ini файла ) а третий получать разпарсиванием из источника..

собственно вопрос как это закинуть в Эксель. не удаётся правильно собрать строку для отправки в модуль



Add(MainForm,9161318,476,462)
{
Width=1141
Height=761
Caption="In_Out_Excel"
Point(onClose)
link(onClose,604810:doCompare,[])
}
Add(LED,1408573,525,413)
{
Left=85
Top=5
}
Add(IndexToChanel,4742625,476,420)
{
link(onEvent1,1408573:doOff,[])
link(onEvent2,1408573:doOn,[])
}
Add(Button,11796961,266,273)
{
Left=5
Top=10
Width=65
Caption="Open Excel"
link(onClick,420540:doExecute,[])
}
Add(Button,12390211,357,392)
{
Left=10
Top=40
Caption="Close"
link(onClick,13900935:doWork2,[])
}
Add(Hub,9982022,364,273)
{
link(onEvent1,10946710:doClear,[(468,279)(468,300)])
link(onEvent2,10692435:doOpen,[(389,286)(389,363)])
}
Add(ODialog,420540,315,273)
{
Filter="Excel(.xls,.xlsx)|*.xls;*.xlsx"
}
Add(ComboBox,10946710,476,287)
{
Left=120
Top=10
Width=140
Height=21
Text="Выбрать лист"
DataType=1
Point(doSelect)
link(onClick,10692435:doSheet,[(515,300)(515,349)(396,349)(396,384)])
}
Add(If_else,11782534,420,287)
{
Type=5
Op2=Integer(0)
link(onTrue,10946710:doAdd,[])
link(onFalse,10946710:doSelect,[(464,300)(464,321)])
}
Add(Button,14425351,231,511)
{
Left=10
Top=80
Caption="Read"
link(onClick,469012:doString,[])
}
Add(Edit,5305046,245,462)
{
Left=75
Top=80
Text="2"
DataType=2
}
Add(Edit,16579324,287,462)
{
Left=130
Top=80
Text="1"
DataType=2
}
Add(FormatStr,469012,280,511)
{
Mask="%1;%2"
link(onFString,10692435:doRead,[(340,517)(340,377)])
link(Str1,5305046:Text,[(286,502)(251,502)])
link(Str2,16579324:Text,[])
}
Add(Button,8636081,14,385)
{
Left=10
Top=110
Font=[MS Sans Serif,8,0,255,1]
Caption="Write"
link(onClick,1368601:doString,[])
}
Add(Edit,663925,28,336)
{
Left=75
Top=110
Text="2"
DataType=2
}
Add(Edit,10420173,70,336)
{
Left=130
Top=110
Text="1"
DataType=2
}
Add(FormatStr,1368601,63,385)
{
DataCount=3
Mask="%1;%2;%3"
link(Str1,663925:Text,[(69,380)(34,380)])
link(Str2,10420173:Text,[])
link(Str3,1032761:Text,[(83,377)(125,377)])
}
Add(VBJScript,10692435,420,357)
{
@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,[(457,362)(457,356)(412,356)(412,296)(413,296)])
link(onCells,3080051:doText,[])
link(onOpen,4742625:doEvent,[(464,384)(464,426)])
}
Add(If_else,604810,525,483)
{
Op2=Integer(1)
link(onTrue,13900935:doWork3,[(567,489)(567,525)(410,525)])
link(Op1,1408573:Value,[])
}
Add(HubEx,13900935,406,392)
{
link(onEvent,10692435:doClose,[])
}
Add(Edit,3080051,476,371)
{
Left=190
Top=80
Width=175
}
Add(Memo,1032761,119,336)
{
Left=380
Top=25
Width=635
Height=175
ScrollBars=2
}
Add(Button,9038106,266,147)
{
Left=20
Top=150
Width=90
Caption="newOpen Excel"
link(onClick,11916269:doStrCat,[])
}
Add(StrCat,11916269,315,147)
{
Str2="data\\Totalizer.xls"
link(onStrCat,9982022:doEvent1,[(352,153)(352,275)(355,275)])
link(Str1,14298259:CurrentDir,[])
}
Add(Dir,14298259,315,105)
{
}
Add(Edit,6776072,980,77)
{
Left=193
Top=313
Width=60
Text="Hiasm"
}
Add(Button,6321344,882,154)
{
Left=195
Top=260
}
Add(Memo,1328506,1246,490)
{
Left=290
Top=235
Width=260
Height=415
}
Add(StrList,9319048,994,210)
{
Strings=#1:1|1:2|1:3|1:4|1:5|1:6|1:7|1:8|1:9|2:10|2:11|2:12|2:13|2:14|2:15|2:16|2:17|2:18|2:19|2:20|
Point(IdxToSelect)
Point(String)
}
Add(StrList,6201761,1148,210)
{
Strings=#1:1|1:2|1:3|1:4|1:5|1:6|1:7|1:8|1:9|2:10|2:11|2:12|2:13|2:14|2:15|2:16|2:17|2:18|2:19|2:20|
Point(IdxToSelect)
Point(String)
}
Add(StrList,13132469,1302,210)
{
Strings=#1:1|1:2|1:3|1:4|1:5|1:6|1:7|1:8|1:9|2:10|2:11|2:12|2:13|2:14|2:15|2:16|2:17|2:18|2:19|2:20|
Point(IdxToSelect)
Point(String)
}
Add(FormatStr,12604527,1106,469)
{
DataCount=3
Mask="%1;%2;%3"
link(onFString,14061091:doEvent1,[])
link(Str1,632566:Item,[])
link(Str2,381207:Item,[])
link(Str3,16651618:Item,[])
}
Add(LineBreak,2764352,245,364)
{
link(Out,10692435:doWrite,[])
Primary=[3625255,973,91]
}
Add(Hub,14061091,1169,462)
{
link(onEvent1,3625255:In,[(1188,467)(1188,464)(1210,464)])
link(onEvent2,1328506:doAdd,[(1188,475)(1239,499)(1240,499)])
}
Add(Button,15007386,847,301)
{
Left=200
Top=360
link(onClick,347950:doEvent1,[])
}
Add(Hub,990017,1064,469)
{
link(onEvent1,12604527:doString,[])
}
Add(DoData,14555333,973,427)
{
link(onEventData,990017:doEvent1,[(1010,433)(1010,475)(1055,475)])
}
Add(InfoTip,5213030,791,21)
{
Info=#55:Эта часть должна создавать строку формата 01;02;03 где |18:1 координата верт.|27:2 координата горизонтально |10:3 значение|34:Для занесения этого дела в Эксель.|
Width=729
Height=760
}
Add(ArrayEnum,632566,994,315)
{
link(Array,9319048:Text,[])
}
Add(ArrayEnum,381207,1152,312)
{
link(Array,6201761:Text,[])
}
Add(ArrayEnum,16651618,1307,320)
{
link(Array,13132469:Text,[])
}
Add(Hub,347950,917,308)
{
OutCount=3
link(onEvent1,632566:doEnum,[])
link(onEvent2,381207:doEnum,[])
link(onEvent3,16651618:doEnum,[])
}



Редактировалось 3 раз(а), последний 2019-04-23 11:00:52
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 16884
Рейтинг: 1239
#2: 2019-04-23 14:59:54 ЛС | профиль | цитата

Add(MainForm,2953706,161,140)
{
Width=247
Height=332
Position=1
}
Add(Memo,1328506,504,224)
{
Left=95
Top=5
Width=125
Height=275
}
Add(StrList,9319048,336,105)
{
Strings=#1:1|1:2|1:3|1:4|1:5|1:6|1:7|1:8|1:9|2:10|2:11|2:12|2:13|2:14|2:15|2:16|2:17|2:18|2:19|2:20|
Point(String)
Point(EndIdx)
Point(doGetString)
}
Add(StrList,6201761,385,133)
{
Strings=#1:1|1:2|1:3|1:4|1:5|1:6|1:7|1:8|1:9|2:10|2:11|2:12|2:13|2:14|2:15|2:16|2:17|2:18|2:19|2:20|
Point(String)
Point(doGetString)
}
Add(StrList,13132469,434,154)
{
Strings=#1:1|1:2|1:3|1:4|1:5|1:6|1:7|1:8|1:9|2:10|2:11|2:12|2:13|2:14|2:15|2:16|2:17|2:18|2:19|2:20|
Point(String)
Point(doGetString)
}
Add(FormatStr,12604527,399,217)
{
DataCount=3
Mask="%1;%2;%3"
link(onFString,14061091:doEvent1,[])
link(Str1,9319048:String,[(405,181)(363,181)])
link(Str2,6201761:String,[])
link(Str3,13132469:String,[(419,204)(461,204)])
}
Add(Hub,14061091,455,217)
{
link(onEvent2,1328506:doAdd,[])
}
Add(Button,15007386,161,196)
{
Left=5
Top=130
link(onClick,695089:doFor,[])
}
Add(For,695089,224,196)
{
link(onEvent,5134589:doEvent1,[])
link(End,9319048:EndIdx,[(237,153)(370,153)])
}
Add(Hub,5134589,280,196)
{
OutCount=4
link(onEvent1,9319048:doGetString,[(296,202)(296,139)])
link(onEvent2,6201761:doGetString,[(340,209)(340,167)])
link(onEvent3,13132469:doGetString,[(364,216)(364,188)])
link(onEvent4,12604527:doString,[])
}

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 7
Рейтинг: 0
#3: 2019-04-23 19:04:58 ЛС | профиль | цитата
Tad, Спасибо ! То что нужно.
Тут есть возможность переименовать тему . Хочу добавить подпись "Решено!"
карма: 0

0
3
Сообщение
...
Прикрепленные файлы
(файлы не залиты)