powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VB6 + Exlel помогите разобраться
3 сообщений из 3, страница 1 из 1
VB6 + Exlel помогите разобраться
    #35093220
Dimon111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Передача массива в столбец Exel

Dim oExcel As Object
Dim oBook As Object
Dim oSheet As Object

'Открыть новую книгу Excel
Set oExcel = CreateObject("Excel.Application")
Set oBook = oExcel.Workbooks.Add

'Создать массив с 3 столбцами и 100 строками
Dim DataArray(1 To 100) As Single
Dim r As Integer
For r = 1 To 100
DataArray(r) = Rnd() * 1000
Next

'Добавить заголовки в строку 1
Set oSheet = oBook.Worksheets(1)
oSheet.Range("A1:C1").Value = Array("Order ID", "Amount", "Tax")

'Передать массив на лист, начиная с ячейки A2
oSheet.Range("A2").Resize(100, 1).Value = DataArray

'Сохранить книгу и закрыть Excel
oBook.SaveAs "C:\Book1.xls"
oExcel.Quit

В результате столбец А (все 100 ячеек) заполняется ОДНИМ (первым) значением массива.
Если переписать строку:
oSheet.Range("A2").Resize(100, 1).Value = DataArray
на
oSheet.Range("A2").Resize(1, 100).Value = DataArray

То СТРОКА заполняются РАЗНЫМИ значенииями.

Если массив сделать двухмерный, то столбцы заполняются правильно.

Где грабли?
Спасибо.
...
Рейтинг: 0 / 0
VB6 + Exlel помогите разобраться
    #35093857
FAndrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скорее всего проблема в том, чт вы двухмерному массиву присваиваете одномерный. Вот он и присваивает каждой строке первый элемент.
А будет работать если в Resize не указывать кол-во столбцов?
В конце концов никто не мешает загнать все в цикле.
...
Рейтинг: 0 / 0
VB6 + Exlel помогите разобраться
    #35093925
Dimon111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FAndrewСкорее всего проблема в том, чт вы двухмерному массиву присваиваете одномерный. Вот он и присваивает каждой строке первый элемент.
А будет работать если в Resize не указывать кол-во столбцов?
В конце концов никто не мешает загнать все в цикле.

Мне нужно запихнуть в Excel два разных масиива. Измерения и время этого измерения. Оба массива одномерные. Размер заранее не определен, но к моменту работы с Excel уже известен. То есть он может быть и 3 и 300 000 элементов.

Похоже, что единственный способ это сделать - создать третий, двухмерный массив и перекинуть в него первые два.

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


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