|
|
|
VB6 + Exlel помогите разобраться
|
|||
|---|---|---|---|
|
#18+
Передача массива в столбец 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 То СТРОКА заполняются РАЗНЫМИ значенииями. Если массив сделать двухмерный, то столбцы заполняются правильно. Где грабли? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 22:39 |
|
||
|
VB6 + Exlel помогите разобраться
|
|||
|---|---|---|---|
|
#18+
Скорее всего проблема в том, чт вы двухмерному массиву присваиваете одномерный. Вот он и присваивает каждой строке первый элемент. А будет работать если в Resize не указывать кол-во столбцов? В конце концов никто не мешает загнать все в цикле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2008, 10:45 |
|
||
|
VB6 + Exlel помогите разобраться
|
|||
|---|---|---|---|
|
#18+
FAndrewСкорее всего проблема в том, чт вы двухмерному массиву присваиваете одномерный. Вот он и присваивает каждой строке первый элемент. А будет работать если в Resize не указывать кол-во столбцов? В конце концов никто не мешает загнать все в цикле. Мне нужно запихнуть в Excel два разных масиива. Измерения и время этого измерения. Оба массива одномерные. Размер заранее не определен, но к моменту работы с Excel уже известен. То есть он может быть и 3 и 300 000 элементов. Похоже, что единственный способ это сделать - создать третий, двухмерный массив и перекинуть в него первые два. Но у меня есть великое желание разобраться в этом до конца. Огромное спасибо за ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2008, 11:04 |
|
||
|
|

start [/forum/search_topic.php?author=fobix&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 626ms |
| total: | 790ms |

| 0 / 0 |
