Мобильная версия форумов
Открыть
 −21°C
завтра: −4°C
Погода в Перми
−21°C
днем−15°C
вечером−10°C
завтра−4°C
Подробно
 66,20
−0.0448
Курс USD ЦБ РФна 20 февраля
66,2022
−0.0448
 74,82
−0.0904
Курс EUR ЦБ РФна 20 февраля
74,8151
−0.0904
  • veteran

    Сообщений: 1437

    Нуна в програмулинке сделать так: в ВБейсике задал, она поколдовала, чатсь данных выдала, часть запросила исчо и в итоге все свои переменные должна сдить на лист екселя, в котором частично забиты всякие слова и фразы. Вопрос - как этот слив переменных в нужные ячейки осуществить?

    Собирая кубик Рубика, можно познать Будду...,
    а можно и не познать.

  • wii-й

    Сообщений: 31567

    Читайте документацию по VBA встроенную в Excel
    Ну или в Сети пошарьте, примеров масса. хотя бы здеся можно глянуть...

    Фантастические твари. Теперь вы знаете, где они обитают...

  • veteran

    Сообщений: 1437

    да вот я и прошу на пример нацелить, не можу сам найти. и желательно, чтоб пример был именно для ВижлБесика, т.к. я и его то хреново знаю, во всем остальном вообще плаваю.

    Собирая кубик Рубика, можно познать Будду...,
    а можно и не познать.

  • v.i.p.

    Сообщений: 13508

    Например, вставим жирную двойку в ячейку А1 первого листа:

    Dim objXL As Object
    Dim objWb As Object
    Dim objWs As Object

    Set objXL = CreateObject("Excel.Application")
    Set objWb = objXL.Workbooks.Open("c:\MyFile.xls") ' имя своего открываемого файла
    Set objWs = objWb.Worksheets(1)

    With objWs.cells(1,1)
    .Font.Bold = True
    .Value = 2
    End With

    objWb.Close ("SaveChanges:=True")

    Set objWs = Nothing
    Set objWb = Nothing
    Set objXL = Nothing

  • veteran

    Сообщений: 1437

    ого, сенкис, работает. дальше думаю сам допру

    Собирая кубик Рубика, можно познать Будду...,
    а можно и не познать.

  • veteran

    Сообщений: 1437

    еще вопрос, распоследний. как имя xls файла запросить в относительных координатах (не с:\..., аневажногде, но в одной папке с бейсиковским файлом)

    Собирая кубик Рубика, можно познать Будду...,
    а можно и не познать.

  • v.i.p.

    Сообщений: 13508

    VB6-го у меня нет, но судя по манам должно быть как-то так:
    На форму кидаем элемент управления "CommonDialog", его имя будет CommonDialog1

    Dim objXL As Object
    Dim objWb As Object
    Dim objWs As Object

    Set objXL = CreateObject("Excel.Application")
    CommonDialog1.InitDir = "C:\Начальный каталог"
    CommonDialog1.ShowOpen

    Set objWb = objXL.Workbooks.Open(CommonDialog1.FileName)
    Set objWs = objWb.Worksheets(1)

    With objWs.cells(1,1)
    .Font.Bold = True
    .Value = 2
    End With

    objWb.Close ("SaveChanges:=True")

    Set objWs = Nothing
    Set objWb = Nothing
    Set objXL = Nothing


    Ну и здесь немного инфы:
    http://msdn2.microsoft.com/en-us/library/256tssz7(VS.80).aspx

  • v.i.p.

    Сообщений: 13508

    Сори, не правильно понял вопрос.
    Если файл лежит в одной папке с экзешником, то можно прописать так:

    Set objWb = objXL.Workbooks.Open(".\MyFile.xls")

  • veteran

    Сообщений: 1437

    Уж допристаю, пока везет.
    Программка сохраняет в xls без его собссно открытия.
    а как исчо в коде прописать так, чтоб файл xls изменился, открылся и не закрывался.

    Собирая кубик Рубика, можно познать Будду...,
    а можно и не познать.

  • v.i.p.

    Сообщений: 13508

    Попробуйте закоментировать строку objWb.Close ("SaveChanges:=True")

  • veteran

    Сообщений: 1437

    при этом он спрашивает разрешение на сохранение, а сам лист не открывает, а надо, чтоб открыл и внес, а сохраню я сам

    Собирая кубик Рубика, можно познать Будду...,
    а можно и не познать.

  • v.i.p.

    Сообщений: 13508

    А если убрать

    objWb.Close ("SaveChanges:=True")

    и сделать так:


    objXL.DisplayAlerts = False
    objXL.Visible = True

    Set objWs = Nothing
    Set objWb = Nothing
    objXL.DisplayAlerts = True
    Set objXL = Nothing


    Сработает?

  • veteran

    Сообщений: 1437

    плакаю:хммм:
    ввожу (" . \ file.xls"), а он пишет, что ошибка. Абсолютные координаты понимает, а относительные нет. Мож не правильно ввожу?

    Собирая кубик Рубика, можно познать Будду...,
    а можно и не познать.

  • v.i.p.

    Сообщений: 13508

    Прям вот так вот, с пробелами?

  • veteran

    Сообщений: 1437

    не, это я тут для наглядности. Пишу в коде без пробелов: (".\file.xls")

    Собирая кубик Рубика, можно познать Будду...,
    а можно и не познать.

  • wii-й

    Сообщений: 31567

    Set objWb = objXL.Workbooks.Open( App.Path+ "\MyFile.xls")

    Только учтите, что при вызове непосредственно из VB App.Path вернет каталог самого VB. Сначала компилите проект и при запуске exe она вернет уже каталог, где лежит exe-шник...

    Фантастические твари. Теперь вы знаете, где они обитают...

  • veteran

    Сообщений: 1437

    подскажьте плизещё. Делаю обратную операцию. ВВожу следующее:
    Option Explicit
    Dim objXL As Object
    Dim objWB As Object
    Dim objWS As Object
    Dim orn(1 To 500) As String
    Dim orc(1 To 500) As Single
    Dim orr(1 To 500) As Byte
    Dim i As Integer

    Private Sub Form_Load()
    Set objXL = CreateObject("Excel.Application")
    Set objWB = objXL.Workbooks.Open(App.Path + "\list.xls")
    Set objWS = objWB.Worksheets(1)

    For i = 1 To 500
    orn(i) = objWS.cells(1, i + 3)
    Next i

    Tdata.Text = orn(3)

    Set objWS = Nothing
    Set objWB = Nothing
    Set objXL = Nothing

    End Sub

    Имею в виду, что элементы строкового массива orn равняются словам из первого столбца файла list.xls . В чем ошибка?

    Собирая кубик Рубика, можно познать Будду...,
    а можно и не познать.

  • veteran

    Сообщений: 1437

    Ура, сам нашел. :улыб:
    Все-равно сенкс.

    Собирая кубик Рубика, можно познать Будду...,
    а можно и не познать.

Записей на странице:

Перейти в форум

Модератор: