Вопрос про макрос

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Russt
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 08.02.2004 (Вс) 23:25

Вопрос про макрос

Сообщение Russt » 08.02.2004 (Вс) 23:29

Подскажите пожалуйста :
Имеется лист екселевский в нём столбец А частично заполнен числами.Мне необходимо создать массив размером равным количеству значений в столбце А и заполнить его по порядку этими значениями для дальнейшей обработке ряда.

Russt
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 08.02.2004 (Вс) 23:25

Сообщение Russt » 09.02.2004 (Пн) 15:39

Неужели никто не в курсе. разве такой сложный вопрос?

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 09.02.2004 (Пн) 16:05

ну просто лень всем :!:
Код: Выделить всё
Sub dd()
Dim i As Integer, n As Integer
    n = 0
    For i = 1 To 100
        If Sheets("Лист1").Cells(i, "a").Value <> "" Then n = n + 1
    Next
    ReDim mas(n) As Integer
    n = 0
    For i = 1 To 100
        If Sheets("Лист1").Cells(i, "a").Value <> "" Then
            mas(n) = Sheets("Лист1").Cells(i, "a").Value
            n = n + 1
        End If
    Next
    For i = 0 To n - 1
        MsgBox mas(i)
    Next
End Sub
Ничто так не ограничивает полёт мысли программиста, как компилятор

Russt
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 08.02.2004 (Вс) 23:25

Сообщение Russt » 09.02.2004 (Пн) 18:29

corgi, большое спасибо за помощь.

Russt
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 08.02.2004 (Вс) 23:25

Сообщение Russt » 09.02.2004 (Пн) 21:43

А как разрешить такую ситуацию: например имеем
Sheets("Лист1").Cells(i, "a").Value = "=AVERAGE(R[y]C[x]:R[y]C[x])"
те нужно чтобы на листе в определённом столбце по порядку расположились значения определённой, встроенной в ексель функции (в данном случае средней по определённым ячейкам) причём параметры x y меняются по некоторому закону.
Примерно

Код: Выделить всё
For i = 1 To 10
Sheets("Лист1").Cells(i, "a").Value = "=AVERAGE(RC[1]:R[i]C[1])"
Next i


Примерно так у меня не получается.

Russt
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 08.02.2004 (Вс) 23:25

Сообщение Russt » 10.02.2004 (Вт) 17:33

Или такое вообще не представляется возможным? Разве нельзя использовать встроенные функции екселя при написании макросов таким образом?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 11.02.2004 (Ср) 10:53

corgi писал(а):ну просто лень всем :!:

8)
Код: Выделить всё
For i = 1 To 10
  Sheets("Лист1").Cells(i, "a").FormulaR1C1 = "=AVERAGE(RC[1]:R["& i &"]C[1])"
Next i
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList