Перенос каждой второй ячейки столбца А(номер телефона), в соседнюю с права со сдвигом вверх.(на против имени) Помогите отформатировать базу, нашел много решений, но не понимаю куда вставлять код скрипт макрос итд. тугой я в этом деле, пошагово может кто-то объяснить как для дебила ?
Перенос каждой второй ячейки столбца А(номер телефона), в соседнюю с права со сдвигом вверх.(на против имени) Помогите отформатировать базу, нашел много решений, но не понимаю куда вставлять код скрипт макрос итд. тугой я в этом деле, пошагово может кто-то объяснить как для дебила ?part1zan
Sub ttt() Application.ScreenUpdating = False Application.CutCopyMode = False Application.DisplayAlerts = False Dim i&, im&, d_ As Range im = Cells(Rows.Count, 1).End(xlUp).Row For i = im To 2 Step -2 Range("A" & i).Copy Range("B" & i - 1).PasteSpecial Rows(i).Delete Next i Application.ScreenUpdating = True Application.CutCopyMode = True Application.DisplayAlerts = True
End Sub
[/vba] Добавил столбец рядом с фамилиями. просто нажмите кнопку
как то так: [vba]
Код
Sub ttt() Application.ScreenUpdating = False Application.CutCopyMode = False Application.DisplayAlerts = False Dim i&, im&, d_ As Range im = Cells(Rows.Count, 1).End(xlUp).Row For i = im To 2 Step -2 Range("A" & i).Copy Range("B" & i - 1).PasteSpecial Rows(i).Delete Next i Application.ScreenUpdating = True Application.CutCopyMode = True Application.DisplayAlerts = True
End Sub
[/vba] Добавил столбец рядом с фамилиями. просто нажмите кнопкукитин
Не нужен Вам никакой скрипт для этого файла. Все делается руками за 20 секунд 1. Встаете в А2, нажимаете Контрл Шифт СтрелкаВниз 2. Копируете выделившееся 3. Встаете в В1, вставляете скопированное 4. Встаете в А2, жмете Контрл Шифт L - появляется автофильтр 5. в столбце Е ставите фильтр по "Пустые" 6. Встаете в А2, нажимаете Контрл Шифт СтрелкаВниз 7. Вкладка Шлавная Главная - Стрелка под кнопкой "Удалить" - Удалить строки с листа 8. Снимаете автофильтр - Вкладка Данные - Очистить Получается вот такой файл
Все это макросом [vba]
Код
Sub tt() Application.ScreenUpdating = 0 Range(Range("A2"), Range("A2").End(xlDown)).Copy Range("B1") ActiveSheet.Range("$A$1").AutoFilter Field:=5, Criteria1:="=" Range(Range("A2"), Range("A2").End(xlDown)).EntireRow.Delete ActiveSheet.ShowAllData Application.ScreenUpdating = 1 End Sub
[/vba] В файле _3 кнопка
Не нужен Вам никакой скрипт для этого файла. Все делается руками за 20 секунд 1. Встаете в А2, нажимаете Контрл Шифт СтрелкаВниз 2. Копируете выделившееся 3. Встаете в В1, вставляете скопированное 4. Встаете в А2, жмете Контрл Шифт L - появляется автофильтр 5. в столбце Е ставите фильтр по "Пустые" 6. Встаете в А2, нажимаете Контрл Шифт СтрелкаВниз 7. Вкладка Шлавная Главная - Стрелка под кнопкой "Удалить" - Удалить строки с листа 8. Снимаете автофильтр - Вкладка Данные - Очистить Получается вот такой файл
Все это макросом [vba]
Код
Sub tt() Application.ScreenUpdating = 0 Range(Range("A2"), Range("A2").End(xlDown)).Copy Range("B1") ActiveSheet.Range("$A$1").AutoFilter Field:=5, Criteria1:="=" Range(Range("A2"), Range("A2").End(xlDown)).EntireRow.Delete ActiveSheet.ShowAllData Application.ScreenUpdating = 1 End Sub
Во, как раз хотел тебе написать - если ты переносишь значения много раз по мало ячеек (и не нужно форматы, примечания и прочую лабуду), то гораздо быстрее работает приравнивание[vba]
Код
Range(1)=Range(2)
[/vba], а вот если ты переносишь много ячеек сразу и не часто, то вот тогда да, Копи-Паст, как у тебя
И вот это [vba]
Код
Range("A" & i).Copy Range("B" & i - 1).PasteSpecial
[/vba]можно переписать вот так [vba]
Код
Range("A" & i).Copy Range("B" & i - 1)
[/vba] Тогда не нужен [vba]
Код
Application.CutCopyMode = False
[/vba]
Во, как раз хотел тебе написать - если ты переносишь значения много раз по мало ячеек (и не нужно форматы, примечания и прочую лабуду), то гораздо быстрее работает приравнивание[vba]
Код
Range(1)=Range(2)
[/vba], а вот если ты переносишь много ячеек сразу и не часто, то вот тогда да, Копи-Паст, как у тебя
И вот это [vba]
Код
Range("A" & i).Copy Range("B" & i - 1).PasteSpecial
точно. именно про это!!!! И вот эта конструкция вместо моей первой работает в разы быстрее
[vba]
Код
Sub ttt() Application.ScreenUpdating = False Application.CutCopyMode = False Application.DisplayAlerts = False Dim i&, im&, d_ As Range im = Cells(Rows.Count, 1).End(xlUp).Row For i = im To 2 Step -2 Range("A" & i).Offset(-1, 1) = Range("A" & i).Value Rows(i).Delete Next i Application.ScreenUpdating = True Application.CutCopyMode = True Application.DisplayAlerts = True
End Sub
[/vba]
точно. именно про это!!!! И вот эта конструкция вместо моей первой работает в разы быстрее
[vba]
Код
Sub ttt() Application.ScreenUpdating = False Application.CutCopyMode = False Application.DisplayAlerts = False Dim i&, im&, d_ As Range im = Cells(Rows.Count, 1).End(xlUp).Row For i = im To 2 Step -2 Range("A" & i).Offset(-1, 1) = Range("A" & i).Value Rows(i).Delete Next i Application.ScreenUpdating = True Application.CutCopyMode = True Application.DisplayAlerts = True
- Прочитайте Правила форума - Приложите файл в формате Excel размером до 100кб согласно п.3 Правил форума - Создайте отдельную тему согласно п.4 и п.5q Правил форума Эта тема закрыта
- Прочитайте Правила форума - Приложите файл в формате Excel размером до 100кб согласно п.3 Правил форума - Создайте отдельную тему согласно п.4 и п.5q Правил форума Эта тема закрыта_Boroda_