Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Открытие книги Excel из командной строки. / 5 сообщений из 5, страница 1 из 1
25.04.2007, 17:26
    #34487354
Slice
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие книги Excel из командной строки.
Хочу написать програмку, у которой бл бы параметр ввиде сслки на страницу в интернете, которая бы открывалась в экселе. Если я делаю эту программу с формой и текстовым окном, то ссылки из текстового окна открываеся, а в программе без формы, не открывается, пишет что Type mismatch
Вот код программы

Код: plaintext
1.
2.
3.
4.
5.
Dim ObjExc As Excel.Application
Set ObjExc = New Excel.Application
ObjExc.SheetsInNewWorkbook =  1 
ObjExc.Workbooks.Open (Text1.Text)
....

В случае без формы
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
Dim ObjExc As Excel.Application
Dim con, strRead As String, strMon As String
Dim reg_num As String, iDate As Long, debet As Double, credit As Double
Dim cmd_line
cmd_line = GetCommandLine( 1 )
Set ObjExc = New Excel.Application
    
    ObjExc.SheetsInNewWorkbook =  1 
    ObjExc.Workbooks.Open cmd_line
...

Function GetCommandLine(Optional MaxArgs)
   Dim C, CmdLine, CmdLnLen, InArg, i, NumArgs
   If IsMissing(MaxArgs) Then MaxArgs =  10 
   ReDim ArgArray(MaxArgs)
   NumArgs =  0 : InArg = False
   CmdLine = Command()
   CmdLnLen = Len(CmdLine)
   For i =  1  To CmdLnLen
      C = Mid(CmdLine, i,  1 )
      If (C <> " " And C <> vbTab) Then
         If Not InArg Then
            If NumArgs = MaxArgs Then Exit For
            NumArgs = NumArgs +  1 
            InArg = True
         End If
         ArgArray(NumArgs) = ArgArray(NumArgs) & C
      Else
         InArg = False
      End If
   Next i
   ReDim Preserve ArgArray(NumArgs)
   GetCommandLine = ArgArray()
   
End Function


причем если я в режиме отладки запускаю программу и меняю
Код: plaintext
 cmd_line = GetCommandLine( 1 ) 
на
Код: plaintext
cmd_line = "www.gdfgdfgdgdg..."

то все открывается и работает
в строке командной параметр указывал и в одинарных кавчках и в двойных, все равно одна и таже ошибка
...
Рейтинг: 0 / 0
25.04.2007, 17:53
    #34487459
Pelican
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие книги Excel из командной строки.
Попробуй так, мож получится:
Если у тебя только один параметр (ссылка на страницу), то
1.
Код: plaintext
Dim cmd_line as String
2.
Код: plaintext
1.
2.
cmd_line = Trim$(Command)
'или
cmd_line = Trim$(CStr(Command))
т.е. заведомо получить String , а не Variant
...
Рейтинг: 0 / 0
25.04.2007, 17:56
    #34487471
Pelican
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие книги Excel из командной строки.
т.е. без использования функции "GetCommandLine()"
...
Рейтинг: 0 / 0
25.04.2007, 18:23
    #34487567
Slice
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие книги Excel из командной строки.
Нашел ответ, оказывается переменная cmd_line является массивом после присвоения и надо указывать элемент массива, в данном случае надо писать cmd_line(1)
...
Рейтинг: 0 / 0
25.04.2007, 18:30
    #34487593
Pelican
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие книги Excel из командной строки.
SliceНашел ответ, оказывается переменная cmd_line является массивом после присвоения и надо указывать элемент массива, в данном случае надо писать cmd_line(1)

С использованием типа Variant шутки подобного рода частенько бывают. :)
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Открытие книги Excel из командной строки. / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]