Vba excel изменить размер таблицы

Обновлено: 07.07.2024

Вожусь вот с экспериментальными данными. Хотел бы организовать рутинную работу. Буду рад, если подскажите, как это сделать..

Задача
- довольно простая.
Есть массив данных, разбитый на множество блоков. В каждом блоке есть пара столбцов со значениями, по которым нужно построить графики. Дабы не делать это много раз, склепал и сохранил в Template отформатированный как надо график, который хотел бы сделать для всех этих данных. Всего должно быть графиков 30.
Начал писать макрос на VBA и тут же споткнулся.

Вопрос 1:
Как правильно вставлять график из Templates?

Но это ещё не всё..
Затем я хотел бы сделать графики определённого размера, чтобы они все были одинаковые. При обычной встаке (ну, не макросом, а "ручками") графики появляются маленькие как я их не сохраняй. Вот тут уже обсуждался вопрос ресайза графиков на определённое количество ячеек. А можно изменять на определённое количество единиц Height и Width? В идеале было бы здорово дописать в макросе пару строчек кода, так чтобы после появления график автоматически ресайзился на заданное количество единиц (скажем, чтобы Height=7" и Width=8").

Вопрос 2:
Как с помощью макроса написанного в VBA изменить размер график на заданное количество единиц?

Вожусь вот с экспериментальными данными. Хотел бы организовать рутинную работу. Буду рад, если подскажите, как это сделать..

Задача
- довольно простая.
Есть массив данных, разбитый на множество блоков. В каждом блоке есть пара столбцов со значениями, по которым нужно построить графики. Дабы не делать это много раз, склепал и сохранил в Template отформатированный как надо график, который хотел бы сделать для всех этих данных. Всего должно быть графиков 30.
Начал писать макрос на VBA и тут же споткнулся.

Вопрос 1:
Как правильно вставлять график из Templates?

Но это ещё не всё..
Затем я хотел бы сделать графики определённого размера, чтобы они все были одинаковые. При обычной встаке (ну, не макросом, а "ручками") графики появляются маленькие как я их не сохраняй. Вот тут уже обсуждался вопрос ресайза графиков на определённое количество ячеек. А можно изменять на определённое количество единиц Height и Width? В идеале было бы здорово дописать в макросе пару строчек кода, так чтобы после появления график автоматически ресайзился на заданное количество единиц (скажем, чтобы Height=7" и Width=8").

Вопрос 2:
Как с помощью макроса написанного в VBA изменить размер график на заданное количество единиц? Triangle

Вожусь вот с экспериментальными данными. Хотел бы организовать рутинную работу. Буду рад, если подскажите, как это сделать..

Задача
- довольно простая.
Есть массив данных, разбитый на множество блоков. В каждом блоке есть пара столбцов со значениями, по которым нужно построить графики. Дабы не делать это много раз, склепал и сохранил в Template отформатированный как надо график, который хотел бы сделать для всех этих данных. Всего должно быть графиков 30.
Начал писать макрос на VBA и тут же споткнулся.

Вопрос 1:
Как правильно вставлять график из Templates?

Но это ещё не всё..
Затем я хотел бы сделать графики определённого размера, чтобы они все были одинаковые. При обычной встаке (ну, не макросом, а "ручками") графики появляются маленькие как я их не сохраняй. Вот тут уже обсуждался вопрос ресайза графиков на определённое количество ячеек. А можно изменять на определённое количество единиц Height и Width? В идеале было бы здорово дописать в макросе пару строчек кода, так чтобы после появления график автоматически ресайзился на заданное количество единиц (скажем, чтобы Height=7" и Width=8").

Вопрос 2:
Как с помощью макроса написанного в VBA изменить размер график на заданное количество единиц? Автор - Triangle
Дата добавления - 04.09.2014 в 06:01

Искал в на форуме и вообще в инете, но не нашёл.

Вопрос к профессионалам.

Есть ли в Excel 2013 возможность изменять размер динамической таблицы по вертикали при помощи макроса?

Искал в на форуме и вообще в инете, но не нашёл.

Вопрос к профессионалам.

Есть ли в Excel 2013 возможность изменять размер динамической таблицы по вертикали при помощи макроса? AwdBor

Вопрос к профессионалам.

Есть ли в Excel 2013 возможность изменять размер динамической таблицы по вертикали при помощи макроса? Автор - AwdBor
Дата добавления - 09.07.2015 в 03:50

[/vba] Автор - _Boroda_
Дата добавления - 09.07.2015 в 07:43

_Boroda_, про это да не совсем. Чтобы этот вопрос решался рекордером - я бы не спрашивал)

Допустим, таблица содержит 500 строк. И периодически появляется необходимость передвинуть нижнюю границу таблицы, к примеру, в начало.
На строку номер 20. А потом опять вниз передвинуть, на строку 150 и т.д.

В примере на Лист1 таблица, в которой данные зависят от размера таблицы на Лист2.
На Лист1 вверху кнопки.
Щелк мышкой по "5 вниз" - и нижняя граница таблицы на Лист2 на 5 строк вниз опустилась (независимо от того, какого размера была изначально).
Еще раз щёлкнуть - и нижняя граница таблицы уже в итоге на 10 строк ниже стала.
Щёлк мышкой по "1 вверх" - и нижняя граница таблицы на Лист2 поднялась вверх на одну строку и т.д.
Т.е. на фактически для такой задачи нужны четыре макроса.

Если я правильно понимаю, надо объявлять переменные вместо $A$1:$B$4 , а то еще и циклы использовать?

Или проще будет убрать так называемую умную таблицу и колдовать при помощи СМЕЩ, СУММЕСЛИ и т.п.?

_Boroda_, про это да не совсем. Чтобы этот вопрос решался рекордером - я бы не спрашивал)

Допустим, таблица содержит 500 строк. И периодически появляется необходимость передвинуть нижнюю границу таблицы, к примеру, в начало.
На строку номер 20. А потом опять вниз передвинуть, на строку 150 и т.д.

В примере на Лист1 таблица, в которой данные зависят от размера таблицы на Лист2.
На Лист1 вверху кнопки.
Щелк мышкой по "5 вниз" - и нижняя граница таблицы на Лист2 на 5 строк вниз опустилась (независимо от того, какого размера была изначально).
Еще раз щёлкнуть - и нижняя граница таблицы уже в итоге на 10 строк ниже стала.
Щёлк мышкой по "1 вверх" - и нижняя граница таблицы на Лист2 поднялась вверх на одну строку и т.д.
Т.е. на фактически для такой задачи нужны четыре макроса.

Если я правильно понимаю, надо объявлять переменные вместо $A$1:$B$4 , а то еще и циклы использовать?

Или проще будет убрать так называемую умную таблицу и колдовать при помощи СМЕЩ, СУММЕСЛИ и т.п.? AwdBor

Допустим, таблица содержит 500 строк. И периодически появляется необходимость передвинуть нижнюю границу таблицы, к примеру, в начало.
На строку номер 20. А потом опять вниз передвинуть, на строку 150 и т.д.

В примере на Лист1 таблица, в которой данные зависят от размера таблицы на Лист2.
На Лист1 вверху кнопки.
Щелк мышкой по "5 вниз" - и нижняя граница таблицы на Лист2 на 5 строк вниз опустилась (независимо от того, какого размера была изначально).
Еще раз щёлкнуть - и нижняя граница таблицы уже в итоге на 10 строк ниже стала.
Щёлк мышкой по "1 вверх" - и нижняя граница таблицы на Лист2 поднялась вверх на одну строку и т.д.
Т.е. на фактически для такой задачи нужны четыре макроса.

Если я правильно понимаю, надо объявлять переменные вместо $A$1:$B$4 , а то еще и циклы использовать?

Или проще будет убрать так называемую умную таблицу и колдовать при помощи СМЕЩ, СУММЕСЛИ и т.п.? Автор - AwdBor
Дата добавления - 09.07.2015 в 08:28

Для существующего именованного диапазона вам может потребоваться изменить размер или расширить его, чтобы включить больше столбцов и строк. В этой статье мы покажем вам три метода изменения размера существующего именованного диапазона в Excel.

Измените размер существующего именованного диапазона с помощью функции диспетчера имен

Чтобы изменить размер существующего именованного диапазона с помощью функции диспетчера имен в Excel, сделайте следующее.

1. Нажмите Формулы > Менеджер имен. Смотрите скриншот:



2. в Менеджер имен диалоговом окне выберите имя диапазона, размер которого вы хотите изменить, а затем щелкните значок кнопку.


3. в Имя менеджера - относится к выберите новый диапазон для этого имени диапазона, а затем закройте это поле.



4. Когда он вернется в Менеджер имен диалогового окна, нажмите кнопку, чтобы сохранить новый диапазон, и, наконец, нажмите кнопку Закрыть кнопку, чтобы закрыть диалоговое окно. Смотрите скриншот:


Вы можете видеть, что указанный именованный диапазон немедленно изменяется.


Изменить размер существующего именованного диапазона с помощью кода VBA

Помимо вышеуказанного метода, код VBA также может помочь вам изменить размер указанного именованного диапазона.

1. Нажмите другой + F11 клавиши одновременно, чтобы открыть Приложение Microsoft Visual Basic окно.

2. в Приложение Microsoft Visual Basic окна, нажмите Вставить > Модуль.

3. Вставьте ниже код VBA в окно модуля.

VBA: изменение размера именованного диапазона

Ноты:

1. «10, 6» в этой строке .RefersTo = .RefersToRange.Resize (10, 6) означает, что указанный именованный диапазон будет изменен, чтобы иметь 10 строк и 6 столбцов.

4. После изменения переменных нажмите кнопку F5 ключ для запуска кода. Во всплывающем диалоговом окне введите имя диапазона, размер которого вы хотите изменить, в Имя поле, а затем щелкните OK кнопку.


Затем размер именованного диапазона немедленно изменяется в соответствии с указанными вами условиями.

Измените размер существующего именованного диапазона с помощью Kutools for Excel

Все названия диапазонов перечислены в Область переходов of Kutools for Excel. И вы можете легко изменить их размер в области навигации.

Перед применением Kutools for Excel, Пожалуйста, сначала скачайте и установите.

1. После установки Kutools for Excel, Область переходов по умолчанию отображается в левой части Excel. Пожалуйста, нажмите на Имя менеджера, выберите имя диапазона, размер которого нужно изменить, а затем нажмите кнопку кнопку.


2. Во всплывающем Kutools for Excel диалоговом окне выберите новый диапазон для этого имени диапазона, а затем щелкните значок OK кнопку.



3. Затем нажмите в Область переходов чтобы завершить настройку.


Внимание: Если вы не видите Область переходов, Пожалуйста, нажмите Kutools > Навигация чтобы включить его.


Освободи Себя Область переходов of Kutools for Excel это мощная утилита, с ее помощью вы можете не только легко изменять размер именованного диапазона, но также создавать автоматический текст для будущего использования, легко переключаться между книгами и листами и так далее.

Если вы хотите получить 30-дневную бесплатную пробную версию этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.

Размер ячейки по высоте и ширине определяется высотой строки и шириной столбца, на пересечении которых она находится. Если, в вашем случае, нежелательно изменять размеры всей строки или всего столбца, используйте объединенные ячейки нужной величины.

Обратите внимание, что высота строки задается в пунктах, а ширина столбца в символах, поэтому их числовые значения не соответствуют друг другу по фактическому размеру.

Информационные окна с высотой строки и шириной столбца в Excel

Высота строки и ширина столбца в Excel

Программно, без дополнительных макросов, можно изменять высоту строки только в пунктах, а ширину столбца только в символах.

На сайте поддержки офисных приложений Microsoft так написано об этих величинах:

  • высота строки может принимать значение от 0 до 409 пунктов, причем 1 пункт приблизительно равен 1/72 дюйма или 0,035 см;
  • ширина столбца может принимать значение от 0 до 255, причем это значение соответствует количеству символов, которые могут быть отображены в ячейке.

Смотрите, как сделать все ячейки рабочего листа квадратными.

Высота строки

Для изменения высоты строки используйте свойство RowHeight объекта Range. И не важно, будет объект Range представлять из себя выделенный произвольный диапазон, отдельную ячейку, целую строку или целый столбец — высота всех строк, пересекающихся с объектом Range будет изменена после присвоения свойству RowHeight этого объекта нового значения.

Примеры изменения высоты строк:

Пример 1
Изменение высоты отдельной ячейки:

в результате, строка, в которой находится активная ячейка, приобретает высоту, равную 10 пунктам.

Пример 2
Изменение высоты строки:

в результате, третья строка рабочего листа приобретает высоту, равную 30 пунктам.

Пример 3
Изменение высоты ячеек заданного диапазона:

в результате, каждой из первых шести строк рабочего листа будет задана высота, равная 20 пунктам.

Пример 4
Изменение высоты ячеек целого столбца:

в результате, всем строкам рабочего листа будет назначена высота, равная 15 пунктам.

Ширина столбца

Для изменения ширины столбца используйте свойство ColumnWidth объекта Range. Как и в случае с высотой строки, не важно, будет объект Range представлять из себя выделенный произвольный диапазон, отдельную ячейку, целую строку или целый столбец — ширина всех столбцов, пересекающихся с объектом Range будет изменена после присвоения свойству ColumnWidth этого объекта нового значения.

Примеры изменения ширины столбцов:

Пример 1
Изменение ширины отдельной ячейки:

в результате, столбец, в котором находится активная ячейка, приобретает ширину, равную 15 символам.

Пример 2
Изменение ширины столбца:

в результате, третий столбец рабочего листа (столбец «C») приобретает ширину, равную 50 символам.

Пример 3
Изменение ширины ячеек заданного диапазона:

в результате, каждому из первых четырех столбцов рабочего листа будет задана ширина, равная 25 символам.

Пример 4
Изменение ширины ячеек целой строки:

в результате, всем столбцам рабочего листа будет назначена ширина, равная 35 символам.

Автоподбор ширины

Для автоподбора ширины ячейки в соответствие с размером ее содержимого используйте следующий код:


Из умной таблицы в текстбокс
Что я делаю не так Me.CBHumans.List = Array(EmployeesListObj.Range(2))

(excel_2010_VBA) Сортировка умной таблицы
Здравствуйте. Проблема заключается в том, что если указать конкретное имя таблицы, то сортировка.


Поместить в Комбобокс отфильтрованную колонку умной таблицы
Ребят, как в Комбобокс поместить отфильтрованную колонку умной таблицы. от а до я Private.

Chelgash, По какому условию во вторую таблицу попадают данные?

Здравствуйте. Условие такое - при заполнении новой строки в Таблице1, в Таблице2 автоматически должна добавиться новая строка и заполнится формулами которые я потом пропишу.

За ранее благодарю.

Доброго времени суток Костя. В таблице 1 можно по вводу номера по порядку сделать.
Сможешь помочь. Срочно надо. Chelgash, а попробуйте вот такой макрос, его надо поставить в модуль первого листа. Добавляется строка в таблицу второго листа, если вы что-то введете в столбец А таблицы первого листа.

Burk, Добровго времени суток. Поставил Ваш код в модуль первого листа и при нажатии мышкой на любую ячейку, выдает ошибку. Complite Error: Variable not Defined в строке - L = LB.Range.Rows.Count

Добавлено через 7 минут
LB - это, как я понимаю, глобальная переменная объекта листа т.е. умной таблицы (Таблица 1)
а RG - Что такое, не объявленная переменная.

Chelgash, Chelgash, кое-что переделывал без проверки, в 3 строке поставил Static RG as Range, несколько раз запускал, всё нормально и добавляется строка во вторую таблицу. Напишите, что у вас будет, только после ввода номера в первую таблицу надо выйти из ячейки с номером мышкой или энтером.

Добавлено через 6 минут
Chelgash, Rg объявлена как Static, только надо добавить тип, как я написал выше. LB не глобальная, а локальная в коде 1 листа. Она ведь не объявлена как Public. Если опять будут проблемы, пришлите снова файл с макросами.

Читайте также: