из VB6 в Xls
3988
17
Ringo_500
veteran
Нуна в програмулинке сделать так: в ВБейсике задал, она поколдовала, чатсь данных выдала, часть запросила исчо и в итоге все свои переменные должна сдить на лист екселя, в котором частично забиты всякие слова и фразы. Вопрос - как этот слив переменных в нужные ячейки осуществить?
Читайте документацию по VBA встроенную в Excel
Ну или в Сети пошарьте, примеров масса. хотя бы здеся можно глянуть...
Ну или в Сети пошарьте, примеров масса. хотя бы здеся можно глянуть...
да вот я и прошу на пример нацелить, не можу сам найти. и желательно, чтоб пример был именно для ВижлБесика, т.к. я и его то хреново знаю, во всем остальном вообще плаваю.
Например, вставим жирную двойку в ячейку А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
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
ого, сенкис, работает. дальше думаю сам допру
еще вопрос, распоследний. как имя xls файла запросить в относительных координатах (не с:\..., аневажногде, но в одной папке с бейсиковским файлом)
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
На форму кидаем элемент управления "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
Сори, не правильно понял вопрос.
Если файл лежит в одной папке с экзешником, то можно прописать так:
Set objWb = objXL.Workbooks.Open(".\MyFile.xls")
Если файл лежит в одной папке с экзешником, то можно прописать так:
Set objWb = objXL.Workbooks.Open(".\MyFile.xls")
Уж допристаю, пока везет.
Программка сохраняет в xls без его собссно открытия.
а как исчо в коде прописать так, чтоб файл xls изменился, открылся и не закрывался.
Программка сохраняет в xls без его собссно открытия.
а как исчо в коде прописать так, чтоб файл xls изменился, открылся и не закрывался.
Попробуйте закоментировать строку objWb.Close ("SaveChanges:=True")
при этом он спрашивает разрешение на сохранение, а сам лист не открывает, а надо, чтоб открыл и внес, а сохраню я сам
А если убрать
objWb.Close ("SaveChanges:=True")
и сделать так:
objXL.DisplayAlerts = False
objXL.Visible = True
Set objWs = Nothing
Set objWb = Nothing
objXL.DisplayAlerts = True
Set objXL = Nothing
Сработает?
objWb.Close ("SaveChanges:=True")
и сделать так:
objXL.DisplayAlerts = False
objXL.Visible = True
Set objWs = Nothing
Set objWb = Nothing
objXL.DisplayAlerts = True
Set objXL = Nothing
Сработает?
плакаю
ввожу (" . \ file.xls"), а он пишет, что ошибка. Абсолютные координаты понимает, а относительные нет. Мож не правильно ввожу?
ввожу (" . \ file.xls"), а он пишет, что ошибка. Абсолютные координаты понимает, а относительные нет. Мож не правильно ввожу?
Прям вот так вот, с пробелами?
не, это я тут для наглядности. Пишу в коде без пробелов: (".\file.xls")
Set objWb = objXL.Workbooks.Open( App.Path+ "\MyFile.xls")
Только учтите, что при вызове непосредственно из VB App.Path вернет каталог самого VB. Сначала компилите проект и при запуске exe она вернет уже каталог, где лежит exe-шник...
Только учтите, что при вызове непосредственно из VB App.Path вернет каталог самого VB. Сначала компилите проект и при запуске exe она вернет уже каталог, где лежит exe-шник...
подскажьте плизещё. Делаю обратную операцию. ВВожу следующее:
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 . В чем ошибка?
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 . В чем ошибка?
Ура, сам нашел.
Все-равно сенкс.
Все-равно сенкс.