Страницы: 1
RSS
Вставка в отфильтрованные строки
 
Добрый День! Есть у нас большой график с множеством фильтров, один из фильтров исполнитель, их 5 шт. каждый исполнитель заполняет за себя сам. Но вот возникла необходимость объединить график в один. и о чудо, он не даёт копировать ячейки с заполненными данными ( просто цифры, без формул). пробовал вот такой вот макрос:
Код
Sub PasteToVisible()    Dim copyrng As Range, pasterng As Range
    Dim cell As Range, i As Long
  
   'запрашиваем у пользователя по очереди диапазоны копирования и вставки
    Set copyrng = Application.InputBox("Диапазон копирования", "Запрос", Type:=8)
    Set pasterng = Application.InputBox("Диапазон вставки", "Запрос", Type:=8)
  
    'проверяем, чтобы они были одинакового размера
    If pasterng.SpecialCells(xlCellTypeVisible).Cells.Count <> copyrng.Cells.Count Then
        MsgBox "Диапазоны копирования и вставки разного размера!",vbCritical
        Exit Sub
    End If
  
    &#39;переносим данные из одного диапазона в другой только в видимые ячейки
    i = 1
    For Each cell In pasterng
        If cell.EntireRow.Hidden = False Then
            cell.Value = copyrng.Cells(i).Value
            i = i + 1
        End If
    Next cell
End Sub
взял его из темы: https://www.planetaexcel.ru/techniques/2/173/#11114
пишет: Диапазоны копирования и вставки разного размера!
хотя ячейки одного размера во всех файлах. подскажите, как быть.  
 
Напишите, что Вы пишите в InputBox-ы?

PS
Цитата
Да да написал:
хотя ячейки одного размера во всех файлах
) Имеется в виду размер диапазона.
Изменено: МатросНаЗебре - 12.04.2021 15:07:23
 
отмечайте диапазоны одного размера
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Я в данных темах не силён....
ячейки все одного размера.
 
Да да  В этом макросе сравнение идет не по выбранным диапазонам. В диапазоне вставки учитываются только видимые ячейки поэтому у вас не получается. Просто этот макрос написан для конкретного задания. И для того чтобы вам помогли надо файл пример и пояснения откуда куда скопировать
 
Хотя попробуйте может так прокатит
Код
Sub PasteToVisible():    Dim copyrng As Range, pasterng As Range
    Dim cell As Range, i As Long
   
   'запрашиваем у пользователя по очереди диапазоны копирования и вставки
    Set copyrng = Application.InputBox("Диапазон копирования", "Запрос", Type:=8)
    Set pasterng = Application.InputBox("Диапазон вставки", "Запрос", Type:=8)
   
    'проверяем, чтобы они были одинакового размера
If pasterng.SpecialCells(xlCellTypeVisible).Cells.Count <> copyrng.SpecialCells(xlCellTypeVisible).Cells.Count Then
        MsgBox "Диапазоны копирования и вставки разного размера!", vbCritical
        Exit Sub
    End If
   
    'переносим данные из одного диапазона в другой только в видимые ячейки
    i = 1
    For Each cell In pasterng
        If cell.EntireRow.Hidden = False Then
            cell.Value = copyrng.Cells(i).Value
            i = i + 1
        End If
    Next cell
End Sub
Изменено: Евгений Смирнов - 13.04.2021 06:55:09
 
Цитата
Да да написал:
ячейки все одного размера
Вам Ігор Гончаренко,  написал не ячейки, а диапазон, например у Вас в копируемом диапазоне выделено 2 ячейки и в диапазоне в который вставляете должно быть выделено 2 ячейки. И Вам не плохо было бы почитать правила форума и приложить файл с примером.
 
Попробуйте этот код: Как вставить скопированные ячейки только в видимые/отфильтрованные ячейки
там неважно одного размера диапазоны или нет.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Наверх