Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование, связанное с MS Office > VBA в Excel


Автор: aleksandrfnsv1 14.12.2008, 15:57
Пожалуйста помогите мне, у меня возникла проблема с Excel и VBA, я хочу вводить данные через форму, но при этом чтобы каждая запись записывалась с следующую ячейку, но не получается, т. е. чтобы сначала записалось в A2,  потом в А3 и т.д.
вот код 
Код

Private Sub CommandButton1_Click()
Dim a As String
Dim b As Integer

Dim massiv(2 To 100) As String
Const c = 100

With Application.Workbooks.Item("Êí.xls")
        Worksheets("Êîíòðàãåíòû").Activate
        For b = 2 To 100
        Range("A(b)") = TextBox1.Text
        Next b
        
End With
ошибка в этом
End Sub


Range("A(b)") = TextBox1.Text

Код



Автор: mihanik 14.12.2008, 18:19
Я бы использовал не Range, а Cell

Кроме того!!!
Перед тем, как копировать код из Ехеля переключайся на русский алфавит.
ТОгда не будет крякозябров в листинге при вставке кода в форму на сайте...

Автор: aleksandrfnsv1 14.12.2008, 18:48
Я пробовал использовать Cells, тоже самое. Проблема заключается в том что я во все сто ячеек заношу одно и тоже, а мне нужно, чтобы в А1 одно, в А2 другое в А3 третье и тд.

Автор: mihanik 14.12.2008, 20:29
Мил человек!!!

Надо использовать не "A(b)", а "A("&cstr(b)&")" !!!


Автор: aleksandrfnsv1 14.12.2008, 20:56
 нет так не катит ругается вот так
Код

run-time error '404'

object required

Автор: mihanik 14.12.2008, 21:22
Вот пример...

Код

Sub Кнопка1_Щелчок()

    Dim X, Y As Integer
    X = 2
    For Y = 2 To 10
        Worksheets(1).Cells(Y, X).Value = InputBox("Значение:", , 2)
    Next Y

End Sub

Автор: ТоляМБА 14.12.2008, 21:30
Код
Dim i As Integer
For i = 2 To 10
    Range("A" & i) = i
Next


ы? У меня работет smile

Автор: mihanik 14.12.2008, 21:38
ТоляМБА, а я про что?!

Всё должно работать!!!

Только я range не люблю... Поэтому делаю с Cells

Автор: Каточимото 15.12.2008, 13:12
Пробуй так:
Код

...
    Dim NextRow As Long
'   Определение следующей пустой строки
    NextRow = Application.WorksheetFunction.CountA(Range("A:A")) + 1

'   Передача имени
    Cells(NextRow, 1) = TextBox1.Text
    Cells(NextRow, 2) = TextBox2.Text
    Cells(NextRow, 3) = TextBox3.Text
...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)