Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Копирование в Экселе / 16 сообщений из 16, страница 1 из 1
12.03.2009, 11:25:57
    #35864126
Alex-RND
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование в Экселе
Гуру помогите .Как написать макрос который бы по кнопке это выполнял ?
В прицепи должно быть не сложно, нужно искать пустую строку в столбце и копировать туда предыдущую то есть ;
A1 значение 1
А2 пусто суда над скопировать значение из поля А1 но при условии что А2 было пустое
А3 значение 2
А4 пусто
заранее спасибо .
...
Рейтинг: 0 / 0
12.03.2009, 13:08:27
    #35864559
Сергей06
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование в Экселе
Alex-RND,
Если без макроса, то так:
Выделяем диапазон
F5 -- Выделить -- пустые ячейки -- ОК
в выделенной ячейке пишем A1
и нажимаем Ctrl + Enter
...
Рейтинг: 0 / 0
12.03.2009, 13:39:17
    #35864703
LidaRoz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование в Экселе
чтото вроде:

With ActiveWorkbook.ActiveSheet
Do While row <= rowMax
If .Cells(row, col) <> "" Then
str_val = .Cells(row, col)
Else
.Cells(row, col) = str_val
End If
row = row + 1
Loop
End With
...
Рейтинг: 0 / 0
12.03.2009, 14:09:54
    #35864827
Alex-RND
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование в Экселе
Сергей06,

ну ... немного не то .. мне на было , что бы в строке 2 появилась буква А, а в строке 4 появилась буква С и и т.д....
Строки Значение
1 a
2
3 c
4
5 v
6
А по твоему получается, что все пустые строчки будут равны одному значению.
...
Рейтинг: 0 / 0
12.03.2009, 15:01:22
    #35864997
Сергей06
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование в Экселе
Alex-RND,
Нет, они будут равны значениям вышезаполненной ячейки...

Но я в последнем посте тебя не понял...
Лучше бы ты сделал пример как есть и как должно быть
...
Рейтинг: 0 / 0
12.03.2009, 15:21:47
    #35865068
Alex-RND
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование в Экселе
Вот так .Пример .
...
Рейтинг: 0 / 0
13.03.2009, 06:17:37
    #35866277
Сергей06
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование в Экселе
Alex-RND,
Ну вроде я все верно записал...
Попробую подругому объяснить
...
Рейтинг: 0 / 0
13.03.2009, 06:18:56
    #35866278
Сергей06
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование в Экселе
Сергей06,
Вот очень подробная инструкция с наглядными картинками
:)

http://www.planetaexcel.ru/tip.php?aid=86
...
Рейтинг: 0 / 0
13.03.2009, 07:54:30
    #35866345
Alex-RND
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование в Экселе
Сергей06,

Спасибо все получилось, хороший ответ .
...
Рейтинг: 0 / 0
13.03.2009, 10:08:40
    #35866548
Alex-RND
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование в Экселе
Сергей06,

И все же бы хотелось это делать макросом .
Всем не расскажешь как с этим работать ..:(
...
Рейтинг: 0 / 0
13.03.2009, 10:24:27
    #35866616
Сергей06
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование в Экселе
Alex-RND,

Попробовать записать макрорекордером :)
...
Рейтинг: 0 / 0
13.03.2009, 11:30:01
    #35866919
Сергей06
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование в Экселе
Alex-RND, Вот такое получилось:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Sub Макрос1()
    Dim Столбец As Integer
    Dim СтрокаПервая As Integer
    Dim ПоследняяСтрока As Integer
    
    Столбец =  1 
    СтрокаПервая =  1 
    ПоследняяСтрока = ActiveWorkbook.ActiveSheet.Cells(Rows.Count,  1 ).End(xlUp).Row +  1 
    
    On Error Resume Next
    Range(Cells(СтрокаПервая, Столбец), Cells(ПоследняяСтрока, Столбец).End(xlUp)).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
    Range(Cells(СтрокаПервая, Столбец), Cells(ПоследняяСтрока, Столбец).End(xlUp)).Copy
    Range(Cells(СтрокаПервая, Столбец), Cells(ПоследняяСтрока, Столбец).End(xlUp)).PasteSpecial xlPasteValues
    Application.CutCopyMode = False
End Sub
Лишнего можно поудалять (копирование в вставку значений)
...
Рейтинг: 0 / 0
13.03.2009, 11:33:17
    #35866939
Alex-RND
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование в Экселе
Сергей06,

Спасибо , все получилось .
...
Рейтинг: 0 / 0
13.03.2009, 11:33:30
    #35866942
Сергей06
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование в Экселе
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Sub Макрос1()
    Dim Столбец As Integer
    Dim СтрокаПервая As Integer
    Dim ПоследняяСтрока As Integer
    
    Столбец =  1 
    СтрокаПервая =  1 
    ПоследняяСтрока = ActiveWorkbook.ActiveSheet.Cells(Rows.Count,  1 ).End(xlUp).Row +  1 
    
    On Error Resume Next
    Range(Cells(СтрокаПервая, Столбец), Cells(ПоследняяСтрока, Столбец)).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
    Range(Cells(СтрокаПервая, Столбец), Cells(ПоследняяСтрока, Столбец)).Copy
    Range(Cells(СтрокаПервая, Столбец), Cells(ПоследняяСтрока, Столбец)).PasteSpecial xlPasteValues
    Application.CutCopyMode = False
End Sub
...
Рейтинг: 0 / 0
13.03.2009, 11:38:39
    #35866965
Alex-RND
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование в Экселе
Alex-RND,

Sub Макрос1()
Columns("A:A").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.FormulaR1C1 = "=R[-1]C"
End Sub

А у меня вот так .
...
Рейтинг: 0 / 0
13.03.2009, 14:15:09
    #35867552
Сергей06
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование в Экселе
Alex-RND, Ага, ну вот видишь :)

Хотя твой макрос можно упростить до:
Код: plaintext
1.
2.
Sub Макрос1()
Columns("A:A").SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
End Sub
+++ Не используется всем ненавистный метод Селект
+++ Короче

--- Если у тебя необходимый диапазон составляет 1000 строк, а кто-то когда-то занес что-то в ячейку, например, A65000, а потом стер значение, то работать этот код будет как раз до этой ячейки. Хотя этого тебе и не надо. Проверь ;-)
--- Если юзер нажмет повторно вызовет код, то у него может появиться окошко об ошибке кода..
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Копирование в Экселе / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]