Копирование строк по условию из существующего набора данных в отдельную таблицу с помощью кода VBA Excel. Определение числа строк в исходной таблице.
Условие задачи
Есть исходная таблица (набор данных) со списком файлов, расположенных в двух папках. Необходимо строки таблицы, содержащие слово «Изображения», скопировать в новую таблицу, расположенную ниже исходного набора данных, через одну пустую строку. В результате должно получиться, как на изображении ниже:
Решение задачи
Код VBA Excel для копирования строк исходного набора данных по условию в отдельную таблицу:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Sub KopirovaniyeStrok() Dim s As String, n As Long, m As Long, i As Long ‘Задаем условие поиска s = «Изображения» ‘Определяем номер последней строки исходной таблицы n = Range(«A2»).CurrentRegion.Rows.Count ‘Задаем номер первой строки новой таблицы m = n + 2 For i = 2 To n ‘Проверяем условие If Cells(i, 1) = s Then ‘Копируем строку, удовлетворяющую условию, в новую таблицу Cells(i, 1).Resize(1, 3).Copy Cells(m, 1) m = m + 1 End If Next End Sub |
При желании, можно добавить в эту процедуру еще одну переменную и автоматическое определение количества столбцов:
Dim c As Long c = Range(«A2»).CurrentRegion.Columns.Count |
Тогда выражение копирования примет следующий вид:
Cells(i, 1).Resize(1, c).Copy Cells(m, 1) |
paha83 Пользователь Сообщений: 12 |
Доброго времени суток уважаемые форумчане! Задача. С помощью VBA: Спасибо! Прикрепленные файлы
|
CAHO Пользователь Сообщений: 2183 |
Пункт 3 и 4 противоречат друг другу. Или я не так понял. Мастерство программиста не в том, чтобы писать программы, работающие без ошибок. |
paha83 Пользователь Сообщений: 12 |
Приветствую, САНО! |
kakaccc Пользователь Сообщений: 5 |
#4 22.09.2015 15:38:18 paha83
, если еще актуально:
Здесь первые 3 пункта. Прикрепленные файлы
Изменено: kakaccc — 22.09.2015 18:11:32 |
||
kakaccc Пользователь Сообщений: 5 |
#5 23.09.2015 15:35:13 Для 5 пункта:
Хотя, по-моему, без макроса будет даже проще. Пока он настроен так, что его надо запустить на каждом листе, который будет затем защищен. Прикрепленные файлы
|
||
paha83 Пользователь Сообщений: 12 |
Доброго времени суток, kakaccc! Большое спасибо за ответ и помощь. Еще раз спасибо!!! |
rSkrin Пользователь Сообщений: 3 |
Добрый день! |
kakaccc Пользователь Сообщений: 5 |
#8 27.02.2016 17:38:57
Немного громоздкий макрос получился. Изменено: kakaccc — 28.02.2016 02:18:56 |
||
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
#9 27.02.2016 18:36:24 kakaccc, чем по-Вашему будут отличаться результаты, если блок:
записать так:
Я сам — дурнее всякого примера! … |
||||
TheBestOfTheBest Пользователь Сообщений: 2366 Excel 2010 +PLEX +SaveToDB +PowerQuery |
Файл должен находиться в папке c:1. На таблице ПКМ-Обновить. Прикрепленные файлы
Неизлечимых болезней нет, есть неизлечимые люди. |
kakaccc Пользователь Сообщений: 5 |
KuklP, потому что я нуб в vba Спасибо! Буду теперь знать и использовать эту функцию. |
rSkrin Пользователь Сообщений: 3 |
Спасибо друзья! Но есть вопрос. Уважаемый kakaccc, правильно ли я понял про «таблица должна начинаться с ячейки А1»- т.е. начало всей таблицы, в том числе и шапки. |
rSkrin Пользователь Сообщений: 3 |
Вопрос отменяю. Чуть подправил, проверил работу, все отлично!!! Спасибо. |
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
#14 28.02.2016 13:55:14
Да, это destination.
можно записать буквально:
в этом слуячае родительский объект вычисляется 3 раза вместо одного в предыдущем примере. Я сам — дурнее всякого примера! … |
||||||
kakaccc Пользователь Сообщений: 5 |
KuklP, все, раз это destination, то вопросов нет. Более менее разобрался. Буду теперь пользоваться. Красиво и лаконично получилось. Спасибо за объяснение! rSkrin, да, вся таблица должна начинаться с А1 (шапка в вашемслучае). Можно сделать независимо от находжения таблицы, используя свойство CurrentRegion, например. Но тогда перед запуском макроса надо будет выделять какую-нибудь ячейку из таблицы. Первоначально я так и записал макрос. Не знал как для вас проще будет. Если хотите, можно так сделать. |
0mega Пользователь Сообщений: 170 |
#16 06.11.2022 11:54:18 KuklP
, здравствуйте
почему команда начинается с точки
Какое у них отличие ? |
||||
MikeVol Пользователь Сообщений: 230 Ученик |
#17 06.11.2022 12:29:09 0mega, Думаю если вы прочтёте справку то возможно поймёте что к чему. почему команда начинается с точки |
Despite many posts I have looked through being of along the same lines as my question, none of the answers satisfy what I am looking for. If you can link me to one I’d gladly read it.
I have a workbook with worksheets. For simplicity, let’s say my workbook has a worksheet. And in my worksheet which is called «Sheet1», there is data in cells A1 to A4.
What I want my VBA code to do is:
- Copy row 1 (or specifically cells A1 to A4) of Workbook ‘A’ into Range variable ‘myRange’
- Create a new workbook, let’s call this one Workbook ‘B’
- Give Workbook ‘B’s default «sheet1» a new name to «Test Name»
- Open Workbook ‘B’ (though I realise that VBA code «Workbooks.Add» opens a new book so this step may be redundant since Workbooks.Add covers half of point 2 and 3)
- Paste ‘myRange’ into first row of ‘Workbook B’
- Save ‘Workbook B’ with name «Test Book» and a timestamp enclosed in square brackets. The file must also be of the file extension «xls»
- Close ‘Workbook B’ and return to ‘Workbook A’
What I have so far is this:
Sub OpenAndSaveNewBook()
'Declarations
Dim MyBook As String
Dim MyRange As Range
Dim newBook As Workbook
'Get name of current wb
MyBook = ThisWorkbook.Name
Set MyRange = MyBook.Sheets("Sheet1").Range("A1,F1")
'Create/Open new wb
newBook = Workbooks.Add
'Save new wb with XLS extension
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "/" & "TEST-BOOK", _
FileFormat:=xlNormal, CreateBackup:=False
'===NOTE: BEFORE THE FOLLOWING RUNS I NEED TO PERFORM ACTIONS ON CELLS VIA VBA ON
'===WORKBOOK 'A'. DOES THE NEWLY CREATE WORKBOOK BECOME THE PRIMARY/ACTIVE WORKBOOK
'===? AND SO THEN DO I NEED TO ACTIVATE WORKBOOK 'A'?
ActiveWorkbook.Close savechanges:=True
'Return focus to workbook 'a'
MyBook.Activate
End Sub
As you can see, I am lacking the code that will handle:
- the pasting of my copied data to the new workbook
- the changing of the new workbook’s sheet1 name to something else
- adding a timestamp to the filename string on save
Lastly, I have included a question in my code as I think I may have a misunderstanding of the ActiveWorkbook method. AFAIK when the code «Workbooks.Add» runs this becomes the Active Workbook, i.e. one with the focus. Does this effect how the VBA code running on Workbook ‘A’? Does this mean that if I wanted to add code to manipulate cells of Workbook ‘A’ then I would need to use «MyBook.Activate» where ‘MyBook’ holds the string of Workbook ‘A’s actual title?
Any help will be greatly appreciated.
Thanks,
QF
Содержание
- VBA Copy / Paste Rows & Columns
- Rows & Columns – Paste vs. Insert
- Copy & Paste Over Existing Row / Column
- Copy & Insert Row / Column
- Copy Entire Row
- Cut and Paste Rows
- Copy Multiple Rows
- VBA Coding Made Easy
- Copy Entire Column
- Cut and Paste Columns
- Copy Multiple Columns
- Copy Rows or Columns to Another Sheet
- Cut Rows or Columns to Another Sheet
- VBA Code Examples Add-in
- VBA Excel. Вырезание, копирование и вставка ячеек (диапазонов)
- Метод Range.Cut
- Синтаксис
- Параметры
- Метод Range.Copy
- Синтаксис
- Параметры
- Метод Worksheet.Paste
- Синтаксис
- Параметры
- Примеры
- 43 комментария для “VBA Excel. Вырезание, копирование и вставка ячеек (диапазонов)”
- VBA Excel. Буфер обмена (копирование, вставка, очистка)
- Копирование и вставка ячеек
- Буфер обмена и переменная
- Объект DataObject
- Копирование текста из переменной в буфер обмена
- Копирование текста из буфера обмена в переменную
- Очистка буфера обмена
- Функции для работы с буфером обмена
- 8 комментариев для “VBA Excel. Буфер обмена (копирование, вставка, очистка)”
- Метод Range.Copy (Excel)
- Синтаксис
- Параметры
- Возвращаемое значение
- Пример
- Поддержка и обратная связь
- Способы VBA работы с ячейками Excel
- Копировать и вставить: наиболее распространенное действие Excel
- Вставить данные ниже последней заполненной строки
VBA Copy / Paste Rows & Columns
In this Article
This tutorial will teach you how to copy (or cut) entire Rows or Columns using VBA. We cover copying and pasting ranges of cells in another article.
First we will show you how to paste or insert copied rows/columns and discuss the differences. Then we will show you all of the different ways to references rows and columns when copying or cutting.
Rows & Columns – Paste vs. Insert
When pasting rows and columns you have two options: You can paste over the existing row (or column) or you can insert a new row (or column).
Let’s look at the difference…
Copy & Paste Over Existing Row / Column
This will copy row 1 and paste it into the existing row 5:
This will copy column C and paste it into column E:
Copy & Insert Row / Column
Instead you can insert the copied row or column and shift the existing rows or columns to make room.
This will copy row 1 and insert it into row 5, shifting the existing rows down:
This will copy column C and insert it into column E, shifting the existing columns to the right:
Copy Entire Row
Below we will show you several ways to copy row 1 and paste into row 5.
Cut and Paste Rows
Simply use Cut instead of Copy to cut and paste rows:
Copy Multiple Rows
Here are examples of copying multiple rows at once:
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro — A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!
Copy Entire Column
You can copy entire columns similarily to copying entire rows:
Cut and Paste Columns
Simply use Cut instead of Copy to cut and paste columns:
Copy Multiple Columns
Here are examples of copying multiple columns at once:
Copy Rows or Columns to Another Sheet
To copy to another sheet, simply use the Sheet Object:
Cut Rows or Columns to Another Sheet
You can use the exact same technique to cut and paste rows or columns to another sheet.
VBA Code Examples Add-in
Easily access all of the code examples found on our site.
Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.
Источник
VBA Excel. Вырезание, копирование и вставка ячеек (диапазонов)
Вырезание, перемещение, копирование и вставка ячеек (диапазонов) в VBA Excel. Методы Cut, Copy и PasteSpecial объекта Range, метод Paste объекта Worksheet.
Метод Range.Cut
Синтаксис
Параметры
Параметры | Описание |
---|---|
Destination | Необязательный параметр. Диапазон ячеек рабочего листа, в который будет вставлен (перемещен) вырезанный объект Range (достаточно указать верхнюю левую ячейку диапазона). Если этот параметр опущен, объект вырезается в буфер обмена. |
Для вставки на рабочий лист диапазона ячеек, вырезанного в буфер обмена методом Range.Cut, следует использовать метод Worksheet.Paste.
Метод Range.Copy
Синтаксис
Параметры
Параметры | Описание |
---|---|
Destination | Необязательный параметр. Диапазон ячеек рабочего листа, в который будет вставлен скопированный объект Range (достаточно указать верхнюю левую ячейку диапазона). Если этот параметр опущен, объект копируется в буфер обмена. |
Метод Worksheet.Paste
Синтаксис
Метод Worksheet.Paste работает как с диапазонами ячеек, вырезанными в буфер обмена методом Range.Cut, так и скопированными в буфер обмена методом Range.Copy.
Параметры
Параметры | Описание |
---|---|
Destination | Необязательный параметр. Диапазон (ячейка), указывающий место вставки содержимого буфера обмена. Если этот параметр не указан, используется текущий выделенный объект. |
Link | Необязательный параметр. Булево значение, которое указывает, устанавливать ли ссылку на источник вставленных данных: True – устанавливать, False – не устанавливать (значение по умолчанию). |
В выражении с методом Worksheet.Paste можно указать только один из параметров: или Destination, или Link.
Для вставки из буфера обмена отдельных компонентов скопированных ячеек (значения, форматы, примечания и т.д.), а также для проведения транспонирования и вычислений, используйте метод Range.PasteSpecial (специальная вставка).
Примеры
Вырезание и вставка диапазона одной строкой (перемещение):
Вырезание ячеек в буфер обмена и вставка методом ActiveSheet.Paste:
Копирование и вставка диапазона одной строкой:
Копирование ячеек в буфер обмена и вставка методом ActiveSheet.Paste:
Копирование одной ячейки и вставка ее данных во все ячейки заданного диапазона:
43 комментария для “VBA Excel. Вырезание, копирование и вставка ячеек (диапазонов)”
Странно, что не рассмотрено копирование ячеек, которые Cells.
Например, следующая строка копирует ячейку A1 в B2
а эта делает тоже самое, но демонстрирует,
как можно добавить размер и смещение:
Здравствуйте!
Скажите, как можно копировать на Лист 1, а вставить на Лист 2 диапазон ячеек целиком, либо отсортированный по 1 признаку диапазон(например по какому-то определенному значению, скажем, числу «500» в одном столбце Листа 1)?
Привет, Максим!
Вот пример сортировки таблицы по значению 500 в первом столбце на «Лист6» и копирования диапазона с «Лист6» на «Лист4» :
Спасибо большое, только я, наверно, неправильно описал ситуацию.
Сперва из эталонной таблицы Лист 1 копируем весь список на существующий Лист4.
Затем, пропускаем шапку, и, начиная со строки7, уже на Лист4 ищем строку, у которой в столбце 5 стоит число 500.
Вырезаем эту строку и вставляем на позицию строки 7. т.е первая после шапки.
Ищем следующую строку — вырезаем, потом вставляем на позицию строки 7+1=8 и т.д.
В итоге оставим только те строки, у которых в столбце 5 стоит число «500», остальные удаляются строки.
(пробовал менять местами строки в предыдущем коде, ошибок нет, копирует, переходит на лист 4, но строки на нем не удаляет, циклы пошагово проходят, но ничего не изменяется.)
Источник
VBA Excel. Буфер обмена (копирование, вставка, очистка)
Работа с буфером обмена в VBA Excel: копирование и вставка ячеек, копирование текста из переменной, очистка буфера обмена. Объект DataObject. Примеры.
Копирование и вставка ячеек
Копирование содержимого и форматов ячеек (диапазона) в буфер обмена осуществляется методом Range.Copy, а вставка – методом Worksheet.Paste:
При вставке диапазона ячеек из буфера обмена на рабочий лист достаточно указать верхнюю левую ячейку места (диапазона) вставки.
Для вставки из буфера обмена отдельных компонентов скопированных ячеек (значения, формулы, примечания и т.д.), а также применения к диапазону транспонирования или вычислений, используется метод Range.PasteSpecial (специальная вставка).
Буфер обмена и переменная
Передача текста между переменной и буфером обмена в VBA Excel осуществляется с помощью объекта DataObject. Стоит иметь в виду, что на некоторых компьютерах DataObject может некорректно работать при открытом окне проводника.
Объект DataObject
Подробнее об элементе DataObject вы можете прочитать на сайте разработчиков.
Методы объекта DataObject:
Метод | Описание |
---|---|
GetFromClipboard | Копирует данные из буфера обмена в DataObject |
GetText | Извлекает текстовую строку из объекта DataObject в указанном формате |
PutInClipboard | Перемещает данные из DataObject в буфер обмена |
SetText | Копирует текстовую строку в DataObject, используя указанный формат |
Копирование текста из переменной в буфер обмена
Копирование текста из буфера обмена в переменную
Очистка буфера обмена
Специального метода для очистки буфера обмена в VBA Excel нет. Для решения этой задачи можно использовать выход из режима вырезания-копирования:
Следующий пример демонстрирует вставку скопированной ячейки «A1» в ячейки «A2» и «A3» и отсутствие вставки в ячейки «A4» и «A5» после строки Application.CutCopyMode = False :
Оператор On Error Resume Next необходим для обработки (пропуска) ошибки, возникающей при вставке из пустого буфера обмена.
Функции для работы с буфером обмена
В некоторых системах, начиная с Windows 8, метод DataObject.PutInClipboard не работает правильно: если открыт хотя бы один экземпляр Проводника (папка), в буфер обмена записываются два квадратика. Следующие функции должны решить эту проблему:
Пример использования функций для работы с буфером обмена:
8 комментариев для “VBA Excel. Буфер обмена (копирование, вставка, очистка)”
Код — не работает ▼
В А1 вставляется какой-то непечатаемый символ и всё. При переходе к другому приложению и попытке вставить содержимое буфера — фиаско.
Добрый день, Михаил!
Такое встречается, начиная с Windows 8, когда открыта хотя бы одна папка в Проводнике. Я добавил в статью функции для работы с буфером обмена, они должны работать.
В Win 8.1 такой проблемы не наблюдаю, уж по всякому погонял, пытаясь вызвать ошибку — всегда правильно отрабатывает ))
А за статью большое спасибо!
Нашёл такую информацию на случай получения ошибки относительно типа данных DataObject.
Чтобы заработал тип данных «DataObject» нужно подключить инструмент «Microsoft Forms Object Libraries». Для этого необходимо выполнить действия в редакторе макросов Эксель:
1. Открыть Tools/References;
2. Через кнопку Browse открыть файл C:WINDOWSSYSTEM32FM20.DLL. Файл «FM20.DLL» может оказаться в другой подпапке Windows, поискать по названию. Может быть в «SysWOW64» или в «System».
Источник
Метод Range.Copy (Excel)
Копирует диапазон в указанный диапазон или в буфер обмена.
Хотите создавать решения, которые расширяют возможности Office на разнообразных платформах? Ознакомьтесь с новой моделью надстроек Office. Надстройки Office занимают меньше места по сравнению с надстройками и решениями VSTO, и вы можете создавать их, используя практически любую технологию веб-программирования, например HTML5, JavaScript, CSS3 и XML.
Синтаксис
выражение.Copy (Destination)
выражение: переменная, представляющая объект Range.
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
Destination | Необязательный | Variant | Указывает новый диапазон, в который будет скопирован заданный диапазон. Если этот аргумент опущен, Microsoft Excel копирует диапазон в буфер обмена. |
Возвращаемое значение
Пример
В следующем примере кода копируются формулы ячеек A1:D4 с листа Sheet1 в ячейки с E5:H8 на листе Sheet2.
В приведенном ниже примере кода проверяется значение столбца D для каждой строки на листе Sheet1. Если значение в столбце D равно «A», вся строка копируется на лист SheetA в следующую пустую строку. Если значение равно «B», строка копируется на лист SheetB.
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Источник
Способы VBA работы с ячейками Excel
Итог: Изучите 3 различных способа копирования и вставки ячеек или диапазонов в Excel с помощью макросов VBA. Это серия из трех частей, также вы сможете скачать файл, содержащий код.
Уровень мастерства: Начинающий
Копировать и вставить: наиболее распространенное действие Excel
Копирование и вставка, вероятно, является одним из самых распространенных действий в Excel. Это также одна из самых распространенных задач, которые мы автоматизируем при написании макросов.
Есть несколько различных способов выполнить эту задачу, и устройство записи макросов не всегда дает вам наиболее эффективный код VBA.
В следующих трех видео я объясняю:
- Самый эффективный метод для простого копирования и вставки в VBA.
- Самый простой способ вставить значения.
- Как использовать метод PasteSpecial для других типов вставок.
Видео № 1: Простой метод «Копировать-вставить»
Видео лучше всего просматривать в полноэкранном HD.
Видео № 2: Простой способ вставить значения
Видео № 3: Метод PasteSpecial
Вставить данные ниже последней заполненной строки
Один из самых распространенных вопросов, которые я получаю о копировании и вставке с помощью VBA: «Как мне вставить данные в конец таблицы? «
Сначала нужно найти последнюю заполненную строку данных, а затем скопировать и вставить ниже неё.
Источник
Номер строки самой нижней ячейки, которая использована на листе
lRws = ActiveSheet.Cells.SpecialCells(xlLastCell).Row
Количество срок можно определить по наличию значений в определенном столбце:
With ActiveSheet
lRws = .Cells(.Rows.Count, "B").End(xlUp).Row
End With
Этими двумя методами можно определить последнюю ячейку, но не всегда. Если последние строки скрыты, они в подсчет не попадут.
Количество строк пользовательского диапазона:
lRws = ActiveSheet.UsedRange.Rows.Count
Здесь тоже есть небольшой подводный камень. Считаем количество строк в пользовательском диапазоне, т.е. с первой использованной до последней. Но строки не всегда используются с первой. Обходим:
With ActiveSheet
lRws = .UsedRange.Row + .UsedRange.Rows.Count - 1
End With
Стоит упомянуть и о «большом подводном камне» при использовании UsedRange.Row. Это касается и SpecialCells(xlLastCell).Row (а вот .End(xlUp).Row к этому нечувствителен).
Часто пользователи форматируют строки с запасом. Или на листе данные, копированные с другого диапазона. Или ниже данных скрыты строки… Учитывается весь пользовательский диапазон, все форматированные строки. Даже те строки, которые удалены, но сохранение изменений еще не произведено. И вместо 10 строк будет определено 10000 )
Нужно это все учитывать и применять то, что наиболее подходит к данной задаче.
‘ ———————-
С переносом данных тоже не все однозначно. Можно Вырезать/Вставить, Копировать/Вставить. Если расположение данных разное или нужна фильтрация, лучше пользоваться массивами (обработка в памяти и выгрузка на лист результата).
0 / 0 / 0 Регистрация: 28.04.2011 Сообщений: 60 |
|
1 |
|
Копирование строки из одной книги в другую05.10.2011, 17:50. Показов 52421. Ответов 19
Необходимо скопировать строку под номером 10 с активного листа активной книги, открыть книгу например С:test.xls (с одним листом) и вставить скопированные данные в 5 строку.
0 |
Памирыч Почетный модератор 21371 / 9105 / 1082 Регистрация: 11.04.2010 Сообщений: 11,014 |
||||||||
05.10.2011, 18:38 |
2 |
|||||||
Но это уже совсем по-самодельному Хотя мне это нравится больше, чем
1 |
nt_dmn 0 / 0 / 0 Регистрация: 28.04.2011 Сообщений: 60 |
||||
05.10.2011, 18:43 [ТС] |
3 |
|||
я делал очень похоже, но на строку
ругается, в чем причина не пойму…
0 |
Памирыч Почетный модератор 21371 / 9105 / 1082 Регистрация: 11.04.2010 Сообщений: 11,014 |
||||
05.10.2011, 18:45 |
4 |
|||
Это присутствует?
1 |
nt_dmn 0 / 0 / 0 Регистрация: 28.04.2011 Сообщений: 60 |
||||||||
05.10.2011, 18:48 [ТС] |
5 |
|||||||
Присутствует, а ругается потому что нечего вставлять, значит не копирует оператор
, может перед ним тоже поставить
Добавлено через 1 минуту
0 |
Почетный модератор 21371 / 9105 / 1082 Регистрация: 11.04.2010 Сообщений: 11,014 |
|
05.10.2011, 18:51 |
6 |
Прикрепил книгу
2 |
nt_dmn 0 / 0 / 0 Регистрация: 28.04.2011 Сообщений: 60 |
||||
06.10.2011, 10:23 [ТС] |
7 |
|||
В книге вижу что работает, а у меня почему то нет, ладно… утро вечера мудренее Добавлено через 15 часов 18 минут
Для этого поста я присвоил статичную величину при вставке (5 строка), а вообще надо вставлять в строку nss.
0 |
Заблокирован |
||||
06.10.2011, 15:43 |
8 |
|||
1 |
0 / 0 / 0 Регистрация: 28.04.2011 Сообщений: 60 |
|
06.10.2011, 16:11 [ТС] |
9 |
Так работает, спасибо! Добавлено через 24 минуты
0 |
Заблокирован |
||||
06.10.2011, 16:17 |
10 |
|||
С помощью макрорекордера можно узнавать синтаксис VBA.
1 |
0 / 0 / 0 Регистрация: 28.04.2011 Сообщений: 60 |
|
06.10.2011, 16:48 [ТС] |
11 |
Спасибо огромное, я просто не спец, сижу разбираюсь, второй день как с vba связался Добавлено через 23 минуты
С помощью макрорекордера можно узнавать синтаксис VBA. …а что такое макрорекодер?
0 |
Заблокирован |
|
06.10.2011, 17:01 |
12 |
nt_dmn,
0 |
0 / 0 / 0 Регистрация: 28.04.2011 Сообщений: 60 |
|
06.10.2011, 17:04 [ТС] |
13 |
Сейчас в 2007 сижу…
0 |
Заблокирован |
||||||||
06.10.2011, 17:16 |
14 |
|||||||
…а что такое макрорекодер?
А не подскажете ещё где мне отключить оповещение при закрытии файлов «в буфере обмена осталось.. бла бла бла» Чет все настройки перерыл, нету… не знаю, можно это сделать с помощью интерфейса программы Excel, а программно вот так делается:
а эту после закрытия книги:
1 |
0 / 0 / 0 Регистрация: 28.04.2011 Сообщений: 60 |
|
06.10.2011, 17:32 [ТС] |
15 |
Спасибо, со всем разобрался
0 |
gera_vip 0 / 0 / 0 Регистрация: 13.06.2014 Сообщений: 5 |
||||
13.06.2014, 15:35 |
16 |
|||
Форумчане, подскажите, пожалуйста, как в 12 строчке кода, вместо Rows(«10:10») указать копировать заполненный диапазон, начиная от второй строчки и до конца, где есть записи.
0 |
Hugo121 6875 / 2807 / 533 Регистрация: 19.10.2012 Сообщений: 8,562 |
||||
13.06.2014, 16:09 |
17 |
|||
Попробуйте так (не проверял):
1 |
0 / 0 / 0 Регистрация: 13.06.2014 Сообщений: 5 |
|
13.06.2014, 16:19 |
18 |
Hugo, а что поменять, чтобы копировались не все данные, а начиная со второй строки и до конца, т.к. в первой строке идут названия столбцов?
0 |
Hugo121 6875 / 2807 / 533 Регистрация: 19.10.2012 Сообщений: 8,562 |
||||
13.06.2014, 16:50 |
19 |
|||
Будет правда ещё снизу одну пустую строку прихватывать — но это ведь ерунда. Можно убрать ресайсом, но лень.
1 |
0 / 0 / 0 Регистрация: 13.06.2014 Сообщений: 5 |
|
13.06.2014, 18:16 |
20 |
Hugo, огромнейшая благодарность!!! Работает!
0 |
Макрос копирования строк n-ое количество раз ниже непустых |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |