|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
26.02.2008, 10:31 | #1 |
Форумчанин
Регистрация: 11.02.2008
Сообщений: 119
|
Работа с листами
Доброго времени суток Вам!!!
Подскажите, пожалуйста, как средствами VBA скорировать только те ячейки из диапазона R3:T65536, которые оботразились на экране после выборке при помощи "автофильтра" и поместить их на соседний лист??? Последний раз редактировалось Flangini; 26.02.2008 в 10:45. Причина: Убрал лишнее слово |
26.02.2008, 11:18 | #2 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Можно обрабатывать ячейки, принадлежащие пересечению диапазонов. В данном случае это Ваш диапазон и все видимые ячейки. Например:
Код:
Чем шире угол зрения, тем он тупее.
|
26.02.2008, 12:03 | #3 |
Форумчанин
Регистрация: 11.02.2008
Сообщений: 119
|
Подскажите, что-то не выходит. Вот такой вот макрос:
Sub обработка() Dim x As Object Dim CpD, CvC1, CvC2, CvC3, b As Single On Error Resume Next Set x = ActiveWorkbook.Sheets("SheetName") Set NewSheet = Worksheets.Add NewSheet.Name = "Work" Intersect(Range("R3:T65536"), Cells.SpecialCells(xlCellTypeVisibl e)).Copy Sheets(2).Range("R3") Set x = Worksheets("Work") x.Activate CpD = WorksheetFunction.Sum(Range("A1:C65 536")) CvC1 = WorksheetFunction.Sum(Range("A1:A65 536")) CvC2 = WorksheetFunction.Sum(Range("B1:B65 536")) CvC3 = WorksheetFunction.Sum(Range("C1:C65 536")) MsgBox "CpD = " & CpD, vbInformation, "1" MsgBox "CvC1 = " & CvC1, vbInformation, "2" CvC1 = (CvC1 * 100) / CpD CvC2 = (CvC2 * 100) / CpD CvC3 = (CvC3 * 100) / CpD MsgBox "CvC1 = " & CvC1, vbInformation, "%" MsgBox "CvC2 = " & CvC2, vbInformation, "%" MsgBox "CvC3 = " & CvC3, vbInformation, "%" End Sub Почему-то только вырезает все ячейки из диапазона R3:T65536 и всё, а на лист "Work" ничего не копирует |
26.02.2008, 12:39 | #4 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Вы "намудрили" с рабочими листами. Не запутайтесь. В данном случае нужно так:
Код:
Чем шире угол зрения, тем он тупее.
|
26.02.2008, 13:08 | #5 |
Форумчанин
Регистрация: 11.02.2008
Сообщений: 119
|
А что именно я намудрил?
Просто после добавления Вашей строчки, ничего не происходит. |
26.02.2008, 13:40 | #6 | ||
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Конечно, может это только часть Вашего макроса, но зачем Вы устанавливаете объект
Цитата:
Цитата:
Если предложенная мной строка кода Код:
Чем шире угол зрения, тем он тупее.
|
||
26.02.2008, 13:41 | #7 | ||
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Конечно, может это только часть Вашего макроса, но зачем Вы устанавливаете объект
Цитата:
Цитата:
Если предложенная мной строка кода Код:
Чем шире угол зрения, тем он тупее.
|
||
26.02.2008, 16:45 | #8 |
Форумчанин
Регистрация: 11.02.2008
Сообщений: 119
|
Всё я понял!!!
Всё работает, замечательно, спасибо огромное!!! |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Excel глюкает из-за большого количества формул и связей между листами? | Diva | Microsoft Office Excel | 1 | 07.08.2008 11:52 |
Пропала строка с листами :( | SlimBr0ther | Microsoft Office Excel | 3 | 24.06.2008 17:52 |