Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Не соображу

3.7K
05 июля 2006 года
SAID
92 / / 06.10.2005
Всем драсте как в VBA сделать так чтобы данные записанные в переменной занасились в ячейку.
Причем если в столбце есть заполненые то запись происходила в первую пустую. Спасибо.
15K
05 июля 2006 года
vkodor
41 / / 04.07.2006
With Workbooks("...").Worksheets("...")
.Cells(.Cells(Rows.Count, "номер столбца").End(xlUp).Row + 1, "номер столбца").Value = "переменная"
End With
3.7K
05 июля 2006 года
SAID
92 / / 06.10.2005
Не работает.
15K
05 июля 2006 года
vkodor
41 / / 04.07.2006
[QUOTE=SAID]Не работает.[/QUOTE]
Что именно?
Покажи что написал?
Какая ошибка?
3.7K
05 июля 2006 года
SAID
92 / / 06.10.2005
Пишет: Run-time error '1004'
Application-defained or object-defained error
275
05 июля 2006 года
pashulka
985 / / 19.09.2004
SAID, Всё правильно, вышеопубликованный код действительно не должен работать, ибо номер столбца - это число, но никак не текст. К тому же, данный пример определяет не первую пустую ячейку, а ячейку, которая смещена в столбце на одну строку вниз относительно последней заполненной ячейки, что не одно и тоже, ведь в Вашем вопросе явно говорится о том, что в столбце (между первой и последней заполненной ячейкой) могут наличествовать пустые ячейки.

Что касается решения Вашего вопроса, то если Вы не защитили свои ячейки и лист (хотя в MS Excel 97, 2000 это не проблема), то Вы можете использовать что-то вроде нижеопубликованного кода, только обратите внимание на то, что ячейка содержащая, например, апостроф будет считаться пустой.

 
Код:
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
3.7K
06 июля 2006 года
SAID
92 / / 06.10.2005
Спасибо все работает, но теперь проблема в следующем копируются ячейки повторно т.е он он проверяет допустим 10 строк 3 из них копирует на другой лист а потом начинает проверку и копирование заного. Так происходит пока не заполнятся все строки на листе.

Вот этот файлик.

Уже все перепробывал и ни как помогите плизз.
15K
06 июля 2006 года
vkodor
41 / / 04.07.2006
 
Код:
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
3.7K
06 июля 2006 года
SAID
92 / / 06.10.2005
[QUOTE=vkodor]
 
Код:
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
[/QUOTE]
да работает спасибо но все равно если при запуске программы повторно копируется все ячейки по второму разу.
15K
06 июля 2006 года
vkodor
41 / / 04.07.2006
[QUOTE=SAID]да работает спасибо но все равно если при запуске программы повторно копируется все ячейки по второму разу.[/QUOTE]
если нужно с очисткой то так

 
Код:
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
15K
06 июля 2006 года
vkodor
41 / / 04.07.2006
[QUOTE=pashulka]SAID, Всё правильно, вышеопубликованный код действительно не должен работать, ибо номер столбца - это число, но никак не текст. К тому же, данный пример определяет не первую пустую ячейку, а ячейку, которая смещена в столбце на одну строку вниз относительно последней заполненной ячейки, что не одно и тоже, ведь в Вашем вопросе явно говорится о том, что в столбце (между первой и последней заполненной ячейкой) могут наличествовать пустые ячейки.

[/QUOTE]
тогда уж не последней заполненой, а нижней (последняя заполненая может быть и вверху)
если Я внёс значения в "А2", а потом в "А1", то последняя мной заполненая будет "А1"
275
06 июля 2006 года
pashulka
985 / / 19.09.2004
SAID, Посмотрите этот пример, возможно он окажется Вам полезен …

Vkodor, К счастью термины в MS Excel не зависят от их трактовки пользователями, поэтому, последней заполненной ячейкой в столбце - будет считаться ячейка с данными, номер строки которой максимален.
3.7K
06 июля 2006 года
SAID
92 / / 06.10.2005
Всем большое спасибо за помощ. Все получилось все работает.
3.7K
06 июля 2006 года
SAID
92 / / 06.10.2005
[QUOTE=pashulka]SAID, Посмотрите этот пример, возможно он окажется Вам полезен …

Vkodor, К счастью термины в MS Excel не зависят от их трактовки пользователями, поэтому, последней заполненной ячейкой в столбце - будет считаться ячейка с данными, номер строки которой максимален.[/QUOTE]

Вот в принципе аналогичная программка тольв ней чем больше строк указываеш в цикле тем дольше она работает и при оч большом количестве зависает.
275
06 июля 2006 года
pashulka
985 / / 19.09.2004
SAID, Ваша программа не имеет ничего общего с предложенным мною вариантом, на который Вы ссылаетесь в виде цитаты.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог