With ThisWorkbook.Worksheets(1).Columns(1)
Set iEmpty = .Find(What:="", _
After:=.Rows(.Rows.Count), LookIn:=xlFormulas)
If Not iEmpty Is Nothing Then
iEmpty.Value = 0.123456789
Else
MsgBox "В столбце нет пустых ячеек и/или ячейки+лист защищены", , ""
End If
End With
Не соображу
Причем если в столбце есть заполненые то запись происходила в первую пустую. Спасибо.
.Cells(.Cells(Rows.Count, "номер столбца").End(xlUp).Row + 1, "номер столбца").Value = "переменная"
End With
Не работает.
Что именно?
Покажи что написал?
Какая ошибка?
Application-defained or object-defained error
Что касается решения Вашего вопроса, то если Вы не защитили свои ячейки и лист (хотя в MS Excel 97, 2000 это не проблема), то Вы можете использовать что-то вроде нижеопубликованного кода, только обратите внимание на то, что ячейка содержащая, например, апостроф будет считаться пустой.
Код:
Вот этот файлик.
Уже все перепробывал и ни как помогите плизз.
Код:
Sub CommandButton2_Click()
i = 1
With ThisWorkbook.Worksheets("Лист2")
Do While Cells(i, 1) <> ""
.Cells(.Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Value = Cells(i, 1).Value
i = i + 1
Loop
End With
End Sub
i = 1
With ThisWorkbook.Worksheets("Лист2")
Do While Cells(i, 1) <> ""
.Cells(.Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Value = Cells(i, 1).Value
i = i + 1
Loop
End With
End Sub
Код:
Sub CommandButton2_Click()
i = 1
With ThisWorkbook.Worksheets("Лист2")
Do While Cells(i, 1) <> ""
.Cells(.Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Value = Cells(i, 1).Value
i = i + 1
Loop
End With
End Sub
i = 1
With ThisWorkbook.Worksheets("Лист2")
Do While Cells(i, 1) <> ""
.Cells(.Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Value = Cells(i, 1).Value
i = i + 1
Loop
End With
End Sub
да работает спасибо но все равно если при запуске программы повторно копируется все ячейки по второму разу.
если нужно с очисткой то так
Код:
Sub CommandButton2_Click()
i = 1
With ThisWorkbook.Worksheets("Лист2")
.Cells.Clear
Do While Cells(i, 1) <> ""
.Cells(.Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Value = Cells(i, 1).Value
i = i + 1
Loop
End With
End Sub
i = 1
With ThisWorkbook.Worksheets("Лист2")
.Cells.Clear
Do While Cells(i, 1) <> ""
.Cells(.Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Value = Cells(i, 1).Value
i = i + 1
Loop
End With
End Sub
[/QUOTE]
тогда уж не последней заполненой, а нижней (последняя заполненая может быть и вверху)
если Я внёс значения в "А2", а потом в "А1", то последняя мной заполненая будет "А1"
Vkodor, К счастью термины в MS Excel не зависят от их трактовки пользователями, поэтому, последней заполненной ячейкой в столбце - будет считаться ячейка с данными, номер строки которой максимален.
Всем большое спасибо за помощ. Все получилось все работает.
Vkodor, К счастью термины в MS Excel не зависят от их трактовки пользователями, поэтому, последней заполненной ячейкой в столбце - будет считаться ячейка с данными, номер строки которой максимален.[/QUOTE]
Вот в принципе аналогичная программка тольв ней чем больше строк указываеш в цикле тем дольше она работает и при оч большом количестве зависает.
SAID, Ваша программа не имеет ничего общего с предложенным мною вариантом, на который Вы ссылаетесь в виде цитаты.