powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Открытие книги Excel из командной строки.
5 сообщений из 5, страница 1 из 1
Открытие книги Excel из командной строки.
    #34487354
Slice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу написать програмку, у которой бл бы параметр ввиде сслки на страницу в интернете, которая бы открывалась в экселе. Если я делаю эту программу с формой и текстовым окном, то ссылки из текстового окна открываеся, а в программе без формы, не открывается, пишет что 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
Открытие книги Excel из командной строки.
    #34487459
Pelican
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуй так, мож получится:
Если у тебя только один параметр (ссылка на страницу), то
1.
Код: plaintext
Dim cmd_line as String
2.
Код: plaintext
1.
2.
cmd_line = Trim$(Command)
'или
cmd_line = Trim$(CStr(Command))
т.е. заведомо получить String , а не Variant
...
Рейтинг: 0 / 0
Открытие книги Excel из командной строки.
    #34487471
Pelican
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
т.е. без использования функции "GetCommandLine()"
...
Рейтинг: 0 / 0
Открытие книги Excel из командной строки.
    #34487567
Slice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашел ответ, оказывается переменная cmd_line является массивом после присвоения и надо указывать элемент массива, в данном случае надо писать cmd_line(1)
...
Рейтинг: 0 / 0
Открытие книги Excel из командной строки.
    #34487593
Pelican
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SliceНашел ответ, оказывается переменная cmd_line является массивом после присвоения и надо указывать элемент массива, в данном случае надо писать cmd_line(1)

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


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