Private Sub Command1_Click()
Dim Value1 As String, Value2 As String, Value3 As String
With CreateObject("Excel.Application")
With .Workbooks.Open(FileName:="E:\11.xls", UpdateLinks:=0)
With .Worksheets(1)
Value1 = .Range("A1").Value
Value2 = .Range("B1").Value
Value3 = .Range("C1").Value
End With
.Close saveChanges:=True 'False
End With
.Quit
End With
Label3.Caption = Value1
Label5.Caption = Value2
Label7.Caption = Value3
End Sub
Dim objExcel as Object
Dim oWorkBook as Object
set objExcel = CreateObject("Excel.Application")
set oWorkBook = objExcel.Workbooks.Open(FileName:="E:\11.xls", UpdateLinks:=0)
with oWorkBook
' и т.д.
end with
'закрываешь
'...
'освобождаешь ссылки:
set oWorkBook = Nothing
set objExcel = Nothing
Так не открывай Excel в цикле. Открывай только 1 раз, а перечисление ячеек и всё остальное уже в цикле.Пробовал Value упаковать в массив, но тогда получается что если цикл , например, 30, то и файл открывается 30 раз.
Привет, спасибо за подсказки!Мой вопрос зачем ты это делаешь и что в итоге планируешь получить?
Private Sub Command1_Click()
'Задаем объекты и переменные
Dim Value(60) As String
Dim objExcel As Object, oWorkBook As Object
Set objExcel = CreateObject("Excel.Application")
Set oWorkBook = objExcel.Workbooks.Open(FileName:="E:\загрузки\11.xls", UpdateLinks:=0)
With oWorkBook
With .Worksheets(1)
'Назначаем каждому объекту массива значение определенной ячейки
Value(1) = .Range("A1").Value
Value(2) = .Range("B1").Value
Value(3) = .Range("C1").Value
End With
End With
oWorkBook.Close (False)
Set oWorkBook = Nothing
objExcel.Visible = True
Set objExcel = Nothing
'Каждый Label получает значение из определенной ячейки
Label3.Caption = Value(1)
Label5.Caption = Value(2)
Label7.Caption = Value(3)
End Sub
Открываешь Excel. Вот тебе и форма с большим экраномв файл, а из файла уже перенести на форму на большой экран.
Ну да, что-то типа этого. Но можно и ещё немного сократить. Вместо:Вот что вышло:
Value(1) = .Range("A1").Value
Value(2) = .Range("B1").Value
Value(3) = .Range("C1").Value
for i = 1 to 3
Value(i) = .Cells(1, i).Value
next
подскажите, А так будет ли правильнее или будет ли быстрее открываться? открыть файл xl ?set objExcel = CreateObject("Excel.Application")
set oWorkBook = objExcel.Workbooks.Open(FileName:="E:\11.xls", UpdateLinks:=0)
with oWorkBook
' и т.д.
end with
'закрываешь
'...
'освобождаешь ссылки:
set oWorkBook = Nothing
set objExcel = Nothing[/CODE]
Public Sub openXL() '
Set oExcel = CreateObject("ExCel.Application") '
Set oBook = oExcel.Workbooks.Open(App.Path & "\DOCM.xlsx")
End Sub
Быстрее по сравнению с чем?А так будет ли правильнее или будет ли быстрее открываться?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?