Excel скопировать лист с картинками
Как можно загрузить Excel таблицу, например в DBGrid?
Как можно загрузить Excel таблицу, например в DBGrid? Или брать значения из Excel таблицы?
Как скопировать определенные ячейки, и вставить их в определенном порядке в таблицу?
Я планирую создать макрос, чтобы он копировал определенные значения из столбика с интервалом 194, и.
если вставлять таблицей а не картинкой, то у каждого разная ширина монитора, в итоге на разных мониторах цифры и форматирование таблицы может съезжать (2 строки в ячейке вместо одной становится или у 5-значного числа 2 цифры в 1ой строке вдруг и 3 цифры во второй)
+ как я подозревая кто-то это с мобилы читает + у айфона на сколько я знаю с экселем проблемы (как минимум мне сын учредителя звонил с вопросом "зачем я ему решётки прислал" - а там надо было просто 2 раза щелкнуть столбец чтобы выровнять ширину. Либо "нажать плюс чтобы группировка данные раскрыла")
При этом я это делаю при помощи snipping tool. Но будет ОК если в Excel подобрать размер таблицы так, чтобы после вставки в тело письма как BITMAP и не надо было растягивать картинку, то качество как у BITMAP
При этом именно и только BITMAP - т.к. если например в Excel скопировать таблицу и нажать "Специальная вставка - как рисунок" (т.к. в Спецвставке в Excel я не нашел опции BITMAP), то если этот рисунок вставить например в презентацию, то у него есть баг: толщина границ таблицы съезжает (этот же баг есть если скопировать таблицы в Excel и вставить её как ссылку в ppt - в режиме просмотра толщина границ таблицы съезжает, притом зависит от масштаба просмотра и от разрешения экрана - на cyberforum мы это 2 месяца назад обсуждали)
Вот потому и очень хотелось бы себя-кнопкодава савтоматизировать в части ежедневного отчета - а для этого мечтаю найти код макроса который умеет с новой строки в теле письма вставлять скопированную из Excel таблицу как BITMAP
Решение
Подскажите пожалуйста, попытался сделать Ctrl+C текста из Excel файла и Ctrl+V в тело письма (как я понимаю, письмо активизируется командой .Display) - для того, чтобы форматирование и цвет внутри текста из Excel'я скопировался
Дальше, соответственно, копирую таблицу как картинку bitmap
Так вот на этому моменте даже если не прописывать код Ctrl+V, то весь текст заменяется этой картинкой (притом если я 2 раза Ctrl+C и Ctrl+V нажимал когда копировал текст, то текст заменится на 2 картинки принтскрина таблицы)
Решение
KoGG, это мегасупер!! thanks!!
единственное, что после вставки в word форматирование текста Ок, но цвет становится обычным (т.е. например синим цветом подсвечено "Net Sales" - становится обычного цвета в Word)
и таблица после вставки в Word в масштабе ужимается - но это легко: просто пробегусь по 6 картинкам и поставлю 100% в самом письме перед отправкой
Это круто!! робот отчетности!
добрый день ! очень прошу помощи
есть таблица короткий пример во вложении. нужно чтобы формировал письма адресат берется из столбца ФИО
а вот в теле данные из столбцов "дело1 дата дело1 результат
" из соответствующих ФИО строк то есть у васи пупкина будет выглядеть так
.
.To = "ВасяПупкин@mail.ru"
.Body = 123 01.04.2015 +
123 03.04.2015 -
.Display
вот как в тело вставить данные я не понимаю (
помогите пожалуйста
Согласно правилам форума - надо было создать отдельную тему.
Тем более что был Word из Excel , а теперь просто Excel и без картинок.
Уважаемый KoGG, но как собрать в одном теле письма все записи касающиеся допустим Васи . Писем то должно быть столько сколько уникальных записей по колонке ФИО а в теле данные из указанных столбцов со всей таблицы напротив этого уникального имени . То есть по данному примеру должно быть 4 письма : Васе Маше льву и Игорь , а вот в теле писем все нужные данные касающиеся их.
Зачем следующий блок ?:
For j = 1 To 30: DoEvents: Next
Next
В чем его смысл ?
PS прошу прощение за запись в этой теме , просто не хотел плодить темы своим пустяковым вопросом . Я в макросах совсем не силен (
создать новую тему?
Добавлено через 11 часов 18 минут
Добрый день! Подскажите пожалуйста - почему может не работать SendKeys "^v", True? Всё остальное в скрипте работает. Облазил весь интернет, пока мысли - возможно окно не активно? У меня стоит Office 365.
Так же смотрел по ссылке операторы, которые могли бы заменить SendKeys, но не нашёл таких.
Заранее спасибо за помощь!
cercyo, проверяйте: точно ли активированно то место где вставляется текст (если остановить скрипт и нажать на клавиатуре, то работает без лишних кликов,); точно ли то что надо есть в буфере.
А вообще практика с симуляцией клавиш вряд ли когда-то будет надёжным решением. Так что поглядеть на другие опци тоже не лишнее.
настало время немного доделать данную тему
в 2014 писал что "ок, пробегусь по картинкам и вручную сделаю масштаб 100%" - конечно каждый кто дошёл до этого момента без труда в итоге, я уверен, нашёл в поиске код, который выделяет все shapes (InlineShape) в word-doc'е и делает их 100% прежде чем вставить в тело письма Outlook
для этого приведу всё-таки полный текст того подмакроса, которым я успешно и с удовольствием делал 3 года утренние ежедневные отчёты (так-то макрос находил все непрочитанные письма - это в программе настроили автоотправку файла с данными о продажах и остатках в заданное время - скачивал их в папку, открывал и обновлял ежедневный отчёт и формировал письмо с картинками для рассылки - если кому нужно, то могу весь такой макрос дать, просто в поиске помню вроде легко это всё найти)
так вот - в чём сейчас вопрос по 100%ой доработке данного макроса стоит:
в макросе как видно почти в самом конце есть выделение в Word Ctrl+A т.е. ".WholeStory" и далее через SendKey 4 раза TAB и потом Ctrl+V
и вот это на самом деле ранее срабатывало %ах в 80-90, но нужно чтобы это срабатывало сейчас в 100%, т.к. ранее я наблюдал за процессом создания письма и даже если вставлялось всё например в адресаты вместо тела, то далее после окончания работы макроса сам мышкой щёлкал в тело письма и нажимал "Ctrl+V"
т.е. видимо sendkey как-то с задержкой срабатывает иногда
а сейчас у меня задача автоматом 10-15 писем создать - и поэтому нужна 100% срабатывание
подскажите пожалуйста, каким кодом можно сделать "Ctrl+V в тело письма Outlook"?
(желательно без затирания автоподписи, т.к. если делать .body=, то оно к примеру затирает автоподпись)
т.е. делается ".WholeStory", а далее я искал и пробовал ".body .paste" и пр. - нет такой команды для oMessage
т.е. между Excel и Word к примеру на 100% можно копировать и вставлять таблицы простой командой .activate .paste как видно из приведенного кода, а так чтобы сделать ".body .activate .paste" не нашёл
При необходимости вы можете скопировать данные, диаграммы или объекты на лист диаграммы. Вы также можете вкопировать данные, скопированные из другой программы, и в качестве рисунка в Microsoft Office Excel.
Копирование данных в виде рисунка в Excel
Выйдите из ячеек или щелкните диаграмму или объект, который вы хотите скопировать как рисунок.
На вкладке Главная в группе Буфер обмена щелкните стрелку рядом с кнопкой Копировать ивыберите Копировать как рисунок.
В диалоговом окне Копирование рисунка сделайте следующее:
В области Внешнийвид выберите нужный вариант.
В областиФормат выберите нужный параметр.
Для лучшего качества изображения убедитесь, что выбраны параметры Как на экране и Рисунок. Однако для сохранения качества рисунка элементы, скопируйте их с помощью параметров Как, показанных на экране и Рисунок, и всегда в сохраняются на 100 % от исходного размера. Например, при масштабе 75 %, скопированные с него объекты могут отображаться больше, так как они вкоплены в реальный размер.
Если вы выбрали диапазон ячеек, но не хотите, чтобы линии сетки отображались при вклеии, сначала перейдите к представлению > Показать > отобразить параметр Сетка.
Щелкните на этом или другом документе место в документе, куда вы хотите вировать рисунок.
На вкладке Главная в группе Буфер обмена нажмите кнопку Вироватьили нажмите CTRL+V.
При необходимости вы можете изменить это изображение. Дополнительные сведения см. в разделе Формат рисунков статьи Вставка рисунков.
Скопируйте данные из другой программы и в виде изображения в Excel
В другой программе, например Word, используйте команду Копировать для копирования данных, которые вы хотите вкопировать как рисунок в Excel.
В Excel щелкните в любом месте таблицы или диаграммы, куда вы хотите вкопировать скопированные данные в качестве рисунка.
На вкладке Главная в группе Буфер обмена щелкните стрелку под кнопкой В таблицу ивыберите специальную ветвь.
В диалоговом окне Специальная вставка выберите В виде рисунка или В виде ссылки в зависимости от того, как вы хотите вировать рисунок, а затем в поле Как выберите Рисунок (расширенный метафил) и нажмите кнопку ОК.
На вкладке Формат внести необходимые изменения.
При необходимости вы можете изменить это изображение. Дополнительные сведения см. в разделе Формат рисунков статьи Вставка рисунков.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 for Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel для Mac 2011 Еще. Меньше
Листы можно перемещать или копировать в пределах одной книги, чтобы упорядочить содержащиеся в ней данные.
С помощью команды Переместить или скопировать лист можно полностью переместить или скопировать листы в пределах одной или нескольких книг. Чтобы переместить или скопировать часть данных на другие листы или в другие книги, можно использовать команды Вырезать и Копировать.
Перемещение листа в книге
Щелкните ярлычок листа и перетащите его в нужное место.
Внимание: После перемещения листа в другую книгу проверьте все формулы и диаграммы, которые ссылаются на данные этого листа: в результате этой операции в книге могут появиться ошибки или неожиданные результаты. Точно так же, если переместить лист, на который ссылается трехмерные ссылки, данные на нем могут быть включены или не включены в расчет.
Копирование листа в одной книге
Удерживая нажатой клавишу CTRL, перетащите ярлычок листа на нужное место.
Щелкните ярлычок листа правой кнопкой мыши и выберите команду Переместить или скопировать.
Установите флажок Создать копию.
В разделе перед листом укажите, куда вы хотите поместить копию.
Если данные требуется переупорядочить, можно менять порядок листов в книге, а также копировать и перемещать листы в другие книги. Обратите внимание на то, что после перемещения листа в вычислениях и на диаграммах, в основе которых лежат содержащиеся на нем данные, могут использоваться неправильные значения.
Перемещение листа
Перетащите ярлычок листа в нужное место в строке ярлычков.
Копирование листа
Нажмите и удерживайте клавишу OPTION.
Перетащите ярлычок листа в строке ярлычков в место, где нужно создать копию.
Важно: Отпустите сначала кнопку мыши, а затем — клавишу OPTION.
Перемещение листа в другую книгу
Внимание: После перемещения листа в другую книгу проверьте все формулы и диаграммы, которые ссылаются на данные этого листа: в результате этой операции в книге могут появиться ошибки или неожиданные результаты. Точно так же, если переместить лист, на который ссылается трехмерные ссылки, данные на нем могут быть включены или не включены в расчет.
Откройте книгу, в которую требуется переместить лист.
В меню Окно щелкните книгу, в которую входит перемещаемый лист.
Щелкните лист, который требуется скопировать в другую книгу.
В меню Правка выберите пункты Лист > Переместить или скопировать лист.
В меню В книгу выберите книгу, в которую требуется переместить лист.
Совет: Чтобы создать новую книгу и переместить в нее лист, выберите вариант новая книга.
В поле Перед листом выберите лист, перед которым нужно вставить перемещаемый лист, или вариант переместить в конец.
Копирование листа в другую книгу
Откройте книгу, в которую требуется скопировать лист.
В меню Окно щелкните книгу, в которую входит копируемый лист.
Выберите лист, который требуется скопировать.
В меню Правка выберите пункты Лист > Переместить или скопировать лист.
В меню В книгу выберите книгу, в которую требуется скопировать лист.
Совет: Чтобы создать новую книгу и переместить в нее лист, выберите вариант новая книга.
В поле Перед листом выберите лист, перед которым нужно вставить скопированный лист, или вариант переместить в конец.
Установите флажок Создать копию.
Изменение цвета ярлычка листа
Изменение цвета ярлычков листов может облегчить отслеживание информации в больших книгах.
Удерживая клавишу CONTROL, щелкните ярлычок листа.
Выберите команду Цвет ярлычка и укажите нужный цвет.
В Excel в Интернете можно дублировать (или копировать) книги. Просто щелкните правой кнопкой мыши имя ярлычка в нижней части листа и выберите команду Дублировать.
Если ваш лист содержит элементы, из-за которых его невозможно продублировать, можно создать его копию вручную, скопировав все данные и вставив их на новый лист. Вот как это сделать:
Выделите все данные на листе.
Сочетания клавиш. Нажмите клавиши CTRL+ПРОБЕЛ на клавиатуре, а затем клавиши SHIFT+ПРОБЕЛ.
Скопируйте все данные на листе, нажав CTRL+C.
Щелкните знак плюса (+), чтобы добавить пустой лист.
Щелкните первую ячейку на новом листе и нажмите CTRL+V, чтобы ввести данные.
Примечание: При вставке ячеек на новый лист примененное к ним условное форматирование будет потеряно.
В Excel в Интернете, если щелкнуть правой кнопкой мыши явку листа, как в настольном приложении Excel, вы не сможете переместить или скопировать лист. В Excel в Интернете вы можете получить такой же результат, скопируя все данные на листе и вкопив их на пустой лист в другой книге.
Чтобы переместить или скопировать книгу в другую книгу в Excel в Интернете, выполните указанные Excel в Интернете.
Выделите все данные на листе.
Сочетания клавиш: нажмите клавиши CTRL+ПРОБЕЛ, а затем клавиши SHIFT+ПРОБЕЛ.
Скопируйте все данные на листе, нажав CTRL+C.
Откройте книгу, в которую необходимо вставить данные, и щелкните знак "плюс" (+) в строке состояния, чтобы добавить новый пустой лист.
Щелкните первую ячейку нового таблицы, а затем нажмите CTRL+V, чтобы ввести данные на этот.
Примечание: При вставке ячеек в другую книгу примененное к ним условное форматирование будет потеряно.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
С помощью OLE можно включать контент из других программ, таких как Word или Excel.
OLE поддерживается многими различными программами, а OLE используется для того, чтобы содержимое, созданное в одной программе, было доступно в другой программе. Например, можно вставить документ Office Word в книгу Office Excel. Чтобы узнать, какие типы содержимого можно вставить, на вкладке Вставка в группе Текст нажмитекнопку Объект. В поле Тип объекта отображаются только программы, которые установлены на компьютере и поддерживают объекты OLE.
При копировании данных между Excel или любой программой, которая поддерживает OLE, например Word, вы можете скопировать их как связанный объект или внедренный объект. Основные различия между связанными и внедренными объектами заключается в том, где хранятся данные и как обновляется объект после его конечный файл. Внедренные объекты хранятся в книге, в которую они вставляются, и не обновляются. Связанные объекты остаются отдельными файлами, и их можно обновлять.
Связанные и внедренные объекты в документе
1. Внедренный объект не имеет подключения к исходным файлам.
2. Связанный объект связан с исходным файлом.
3. Исходный файл обновляет связанный объект.
Когда использовать связанные объекты
Если вы хотите, чтобы данные в конечный файл обновлялись при исходный файл изменения, используйте связанные объекты.
При связываемом объекте исходные данные сохраняются в исходном файле. В конечном файле отображается представление связанных данных, но хранится только расположение исходных данных (и размер, если объект является объектом диаграммы Excel). Исходный файл должен оставаться доступным на компьютере или в сети, чтобы сохранить связь с исходными данными.
Связанные данные могут обновляться автоматически при изменении исходных данных в исходном файле. Например, если вы вы выбрали абзац в документе Word, а затем вклеили его как связанный объект в книгу Excel, то при изменении сведений в документе Word сведения могут обновляться в Excel.
Когда использовать внедренные объекты
Если вы не хотите обновлять скопированные данные при их внесении в исходный файл, используйте внедренный объект. Версия источника полностью внедрена в книгу. При копировании данных как внедренных объектов в файле назначения требуется больше места на диске, чем при связываи.
Когда пользователь открывает файл на другом компьютере, он может просмотреть внедренный объект, не имея доступа к исходным данным. Поскольку внедренный объект не имеет ссылок на исходный файл, он не обновляется при изменении исходных данных. Чтобы изменить внедренный объект, дважды щелкните его, чтобы открыть и изменить в программе-источнике. На компьютере должна быть установлена программа-источник (или другая программа, которая может редактировать объект).
Изменение способа отображения объекта OLE
Вы можете отобразить связанный объект или внедренный объект в книге точно так же, как в программа-источник или в качестве значка. Если книга будет просмотрена в Интернете и вы не собираетесь ее печатать, вы можете отобразить объект в виде значка. Таким образом уменьшается объем отображаемого пространства, занимаемого объектом. Пользователи, которые хотят отобразить сведения, могут дважды щелкнуть значок.
Добрый день! Я умею худо бедно программировать на VBA, а хочу сделать программу для Android, делаю прототип на VBA, чтоб потом готовую программу перегнать под Android, может буду искать кого-то, а может и сама решусь. Это предыстория - почему у меня на VBA вопрос, который нетипичен для этой среды. В Экселе мне нужно с помощью кода сначала очистить картинки на листе (их порядка 30 шт, но я не знаю как их лучше упорядочить). А потом (все эти картинки хранятся на другом листе), согласно программному коду, заново залить некоторые из них в строго заданные места обратно на тот же лист. Картинки хранятся на листе А, а отобразить их надо на листе В, предварительно очистив лист В от предыдущей заливки. Сейчас я это реализовала с помощью чтения этих картинок из файлов на компьютере, но хочу иметь возможность переносить этот Эксель с компьютера на компьютер, поэтому хочу переписать код так, чтоб картинки хранились и брались с листа А. Как это лучше организовать? Ciollection? Мне очень нужен пример кода, потому что я ни с Shapes ни с Collection никогда не работала. Кто может, помогите, пожалуйста!
Перенос данных с одного листа на другой в Excel
На первом листе есть данные. При активации следующих листов проверить наличие данных в этих листах.
Перенос данных с одного листа на другой в Excel
Доброго времени суток! Голову сломал, не найти полезной инфы. Есть лист "1" - дано (вписываем от.
Перенос данных в Excel c одного листа на другой
Возникла необходимость поковыряться в Excel, раньше на VBA не программировал, поэтому рассчитываю.
Вот, для примера код, который копирует все картинки на одном листе, вставляет их на другой, а на первом - удаляет. Думаю на его основе, вы сможете сделать то, что вам нужно.
Добрый день! Спасибо за ответ. Много перепробовала. Не знала, что есть Pictures. Но у меня все равно не получилось, увы! Задача: вставить с Листа "Картинки" Sheets("Картинки").Pictures(8).Copy в Sheets("Другой").Pictures. То есть не в ячейки а в Pictures. Можете помочь?
Ячейки у меня использованы только для того, чтобы распределить картинки в пространстве. Изображения не вписываются в ячейки и сохраняют свой естественный размер. Код, который я написал - рабочий, поэтому он у вас тоже должен был сработать. Помочь попробую, хотя не совсем понимаю: какая разница между тем, что делает выложенный код и тем, что вам нужно - единственная "морока" - подобрать i и j для распределения ячеек на листе.
Читайте также: