Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Дублирование формата ячейки на другой лист - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Дублирование формата ячейки на другой лист
gge29 Дата: Пятница, 23.01.2026, 13:24 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 326
Репутация: 3 ±
Замечаний: 0% ±

Добрый день!Возможно ли форматирование ячеек с одного листа дублировать на второй,
но он другой формы?Формула дублирует значение ячейки,а вот с форматированием проблема.
Нашёл что-то подобное,но если для каждой ячейки писать-это будет ужас
[vba]
Код
Sub CopyPastInsert()
Dim myRange As Range
Set myRange = ActiveWorkbook.Sheets("Лист2").Range("A1")
'Set myRange = ActiveWorkbook.Worksheets("Лист2").Range("A1")
  'myRange.Activate
    ActiveWorkbook.Worksheets("Лист2").Range("c10").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
myRange.Copy
' Range("A1").Copy
    ActiveWorkbook.Worksheets("Лист2").Range("c10").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    ActiveWorkbook.Worksheets("Лист2").Range("c10").PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
         Application.CutCopyMode = False
Range("A1").Select
End Sub
[/vba]
К сообщению приложен файл: gggg.xlsm (33.1 Kb)
 
Ответить
СообщениеДобрый день!Возможно ли форматирование ячеек с одного листа дублировать на второй,
но он другой формы?Формула дублирует значение ячейки,а вот с форматированием проблема.
Нашёл что-то подобное,но если для каждой ячейки писать-это будет ужас
[vba]
Код
Sub CopyPastInsert()
Dim myRange As Range
Set myRange = ActiveWorkbook.Sheets("Лист2").Range("A1")
'Set myRange = ActiveWorkbook.Worksheets("Лист2").Range("A1")
  'myRange.Activate
    ActiveWorkbook.Worksheets("Лист2").Range("c10").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
myRange.Copy
' Range("A1").Copy
    ActiveWorkbook.Worksheets("Лист2").Range("c10").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    ActiveWorkbook.Worksheets("Лист2").Range("c10").PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
         Application.CutCopyMode = False
Range("A1").Select
End Sub
[/vba]

Автор - gge29
Дата добавления - 23.01.2026 в 13:24
_Boroda_ Дата: Пятница, 23.01.2026, 15:49 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 17006
Репутация: 6667 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Выделите в первом листе диапазон и запустите это:
[vba]
Код
Sub tt()
    With Selection
        shIn_ = .Parent.Index
        ad_ = .Address
        nr_ = .Rows.Count
        .Copy
    End With
    With Sheets(shIn_ + 1)
        .Select
        Application.ScreenUpdating = 0
        With .Range(ad_)
            .PasteSpecial Paste:=xlPasteValues
            .PasteSpecial Paste:=xlPasteFormats
            For i = nr_ - 1 To 1 Step -1
                .Offset(i).Resize(1).EntireRow.Insert
            Next i
            .Offset(1, 16).Resize(1, 1).EntireColumn.Insert
            .Offset(, 17).Resize(nr_ * 2 - 1, 16).Copy
            .Offset(1, 1).Resize(1, 1).Select
        End With
        .PasteSpecial Format:=1, Link:=1, DisplayAsIcon:=True, IconFileName:=False
        .Range(ad_).Offset(, 17).Resize(nr_ * 2 - 1, 16).Clear
        Application.ScreenUpdating = 1
    End With
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеВыделите в первом листе диапазон и запустите это:
[vba]
Код
Sub tt()
    With Selection
        shIn_ = .Parent.Index
        ad_ = .Address
        nr_ = .Rows.Count
        .Copy
    End With
    With Sheets(shIn_ + 1)
        .Select
        Application.ScreenUpdating = 0
        With .Range(ad_)
            .PasteSpecial Paste:=xlPasteValues
            .PasteSpecial Paste:=xlPasteFormats
            For i = nr_ - 1 To 1 Step -1
                .Offset(i).Resize(1).EntireRow.Insert
            Next i
            .Offset(1, 16).Resize(1, 1).EntireColumn.Insert
            .Offset(, 17).Resize(nr_ * 2 - 1, 16).Copy
            .Offset(1, 1).Resize(1, 1).Select
        End With
        .PasteSpecial Format:=1, Link:=1, DisplayAsIcon:=True, IconFileName:=False
        .Range(ad_).Offset(, 17).Resize(nr_ * 2 - 1, 16).Clear
        Application.ScreenUpdating = 1
    End With
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 23.01.2026 в 15:49
gge29 Дата: Пятница, 23.01.2026, 16:50 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 326
Репутация: 3 ±
Замечаний: 0% ±

Александр, что-то не так,выделяю диапазон нажимаю скопировать все ячейки которые закрашены дублируются в строке ниже
 
Ответить
СообщениеАлександр, что-то не так,выделяю диапазон нажимаю скопировать все ячейки которые закрашены дублируются в строке ниже

Автор - gge29
Дата добавления - 23.01.2026 в 16:50
_Boroda_ Дата: Пятница, 23.01.2026, 16:53 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 17006
Репутация: 6667 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
В книге должно быть по крайней мере 2 листа. Первый - откуда берем, второй - куда кладем. Названия произвольны
Макрос вставляет новую таблицу в лист, находящийся справа от того, в котором исходная таблица


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеВ книге должно быть по крайней мере 2 листа. Первый - откуда берем, второй - куда кладем. Названия произвольны
Макрос вставляет новую таблицу в лист, находящийся справа от того, в котором исходная таблица

Автор - _Boroda_
Дата добавления - 23.01.2026 в 16:53
gge29 Дата: Суббота, 24.01.2026, 08:54 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 326
Репутация: 3 ±
Замечаний: 0% ±

Доберусь до оригинала и скину
 
Ответить
СообщениеДоберусь до оригинала и скину

Автор - gge29
Дата добавления - 24.01.2026 в 08:54
gge29 Дата: Вторник, 27.01.2026, 17:53 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 326
Репутация: 3 ±
Замечаний: 0% ±

Выделите в первом листе диапазон и запустите это

Александр,а возможно как-то без выделения(Листы блокирую от рукожопов и кнопку рибоном вывожу в меню)
и копию в указанный диапазон на определенный лист
 
Ответить
Сообщение
Выделите в первом листе диапазон и запустите это

Александр,а возможно как-то без выделения(Листы блокирую от рукожопов и кнопку рибоном вывожу в меню)
и копию в указанный диапазон на определенный лист

Автор - gge29
Дата добавления - 27.01.2026 в 17:53
_Boroda_ Дата: Среда, 28.01.2026, 09:20 | Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 17006
Репутация: 6667 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Возможно. Но тогда нужно четко понимать, что и как расположено на листе-исходнике. Откуда начинается таблица, нет ли у нее пустых строк/столбцов, есть ли на листе еще что-нибудь, если есть, то что и где.
Кстати, если блокируете, то как рукожопы заполняют и красят эту таблицу?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеВозможно. Но тогда нужно четко понимать, что и как расположено на листе-исходнике. Откуда начинается таблица, нет ли у нее пустых строк/столбцов, есть ли на листе еще что-нибудь, если есть, то что и где.
Кстати, если блокируете, то как рукожопы заполняют и красят эту таблицу?

Автор - _Boroda_
Дата добавления - 28.01.2026 в 09:20
gge29 Дата: Среда, 28.01.2026, 12:02 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 326
Репутация: 3 ±
Замечаний: 0% ±

У них только доступ к заполнению части ячеек, перед основным макросом код разблокировки потом работа макроса и снова код закрытия листа. Попробую сделать шаблон для наглядности и выложить
 
Ответить
СообщениеУ них только доступ к заполнению части ячеек, перед основным макросом код разблокировки потом работа макроса и снова код закрытия листа. Попробую сделать шаблон для наглядности и выложить

Автор - gge29
Дата добавления - 28.01.2026 в 12:02
gge29 Дата: Среда, 04.02.2026, 13:07 | Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 326
Репутация: 3 ±
Замечаний: 0% ±

Александр,добрый день!Пытался под оригинал применить,
но диапазон ad_ попадает на объединённые ячейки
На пустой лист встаёт чётко!
Может как-то по другому возможно дописать его?
К сообщению приложен файл: Copy.xlsm (99.3 Kb)
 
Ответить
СообщениеАлександр,добрый день!Пытался под оригинал применить,
но диапазон ad_ попадает на объединённые ячейки
На пустой лист встаёт чётко!
Может как-то по другому возможно дописать его?

Автор - gge29
Дата добавления - 04.02.2026 в 13:07
gge29 Дата: Среда, 04.02.2026, 18:40 | Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 326
Репутация: 3 ±
Замечаний: 0% ±

ВРоде как оно,завтра проверю
[vba]
Код
Sub tt()
    Dim rSource As Range
    Set rSource = Sheets("ОДНОСТРОЧНЫЙ").Range("H13:AL27")
    With rSource
        Dim ad_ As String
        ad_ = .Address
        Dim nr_ As Long
        nr_ = .Rows.Count
    End With
     
    Dim rTarget As Range
    Set rTarget = Sheets("СУДОВОЙ").Range(ad_).Cells(1, 1)
     
    Application.ScreenUpdating = False
    Dim Application_Calculation As XlCalculation: Application_Calculation = Application.Calculation: Application.Calculation = xlCalculationManual
     
    Dim ys As Long, xs As Long, yt As Long, xw As Long
    For ys = 1 To rSource.Rows.Count
        xw = 16 + 1
        For xs = 1 To rSource.Columns.Count Step 16
            yt = yt + 1
            xw = xw - 1
            rSource.Cells(ys, xs).Resize(1, xw).Copy
            rTarget(yt, 1).PasteSpecial Paste:=xlPasteValues
            rTarget(yt, 1).PasteSpecial Paste:=xlPasteFormats
        Next
    Next
    Calculate
    Application.Calculation = Application_Calculation
    Application.ScreenUpdating = True
End Sub
[/vba]
 
Ответить
СообщениеВРоде как оно,завтра проверю
[vba]
Код
Sub tt()
    Dim rSource As Range
    Set rSource = Sheets("ОДНОСТРОЧНЫЙ").Range("H13:AL27")
    With rSource
        Dim ad_ As String
        ad_ = .Address
        Dim nr_ As Long
        nr_ = .Rows.Count
    End With
     
    Dim rTarget As Range
    Set rTarget = Sheets("СУДОВОЙ").Range(ad_).Cells(1, 1)
     
    Application.ScreenUpdating = False
    Dim Application_Calculation As XlCalculation: Application_Calculation = Application.Calculation: Application.Calculation = xlCalculationManual
     
    Dim ys As Long, xs As Long, yt As Long, xw As Long
    For ys = 1 To rSource.Rows.Count
        xw = 16 + 1
        For xs = 1 To rSource.Columns.Count Step 16
            yt = yt + 1
            xw = xw - 1
            rSource.Cells(ys, xs).Resize(1, xw).Copy
            rTarget(yt, 1).PasteSpecial Paste:=xlPasteValues
            rTarget(yt, 1).PasteSpecial Paste:=xlPasteFormats
        Next
    Next
    Calculate
    Application.Calculation = Application_Calculation
    Application.ScreenUpdating = True
End Sub
[/vba]

Автор - gge29
Дата добавления - 04.02.2026 в 18:40
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2026 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!