АналитикБУ Пользователь Сообщений: 36 |
Добрый день уважаемые форумчане. Искал вариант макроса, который бы позволил бы проанализировать столбец А, в котором записаны названия строк, и определить уровень каждой записи в ячейке. Прошу подсказать, чем можно заменить .IndentLevel или как можно решить задачу. |
Kuzmich Пользователь Сообщений: 7998 |
#2 09.02.2020 13:27:20
Вроде получается
|
||||
Юрий М Модератор Сообщений: 60585 Контакты см. в профиле |
#3 09.02.2020 13:32:12
У меня на Вашем файле получилось:
|
||||
АналитикБУ Пользователь Сообщений: 36 |
Kuzmich, благодарю за помощь. |
БМВ Модератор Сообщений: 21385 Excel 2013, 2016 |
#5 09.02.2020 13:44:25 У вас наверно неправильная сводная таблица и дает неправильные отступы
Прикрепленные файлы
Изменено: БМВ — 09.02.2020 13:45:40 По вопросам из тем форума, личку не читаю. |
||
0 / 0 / 0 Регистрация: 27.05.2017 Сообщений: 20 |
|
1 |
|
Отступ текста (абзац) в объединённой ячейке19.10.2017, 17:35. Показов 9762. Ответов 19
Уважаемые умы, вот реально сложная задача! (По крайней мере я за 2 дня поисков в сети ни нашёл ничего подобного.)
0 |
1237 / 673 / 240 Регистрация: 22.12.2015 Сообщений: 2,094 |
|
19.10.2017, 18:00 |
2 |
Как в Word, когда начинается новое предложение. Следует ли полагать, что речь идет об Excel?
Надеюсь задачу я описал верно.. Сделайте руками, то что вы хотите сделать на VBA и приложите в формате xls, тогда будет понятно, какой результат Вам нужен.
0 |
0 / 0 / 0 Регистрация: 27.05.2017 Сообщений: 20 |
|
19.10.2017, 18:10 [ТС] |
3 |
Следует ли полагать, что речь идет об Excel? Я хочу сделать автоматический отступ («КРАСНАЯ СТРОКА» первой строки текста) в ячейке Excel.
0 |
Dinoxromniy 1237 / 673 / 240 Регистрация: 22.12.2015 Сообщений: 2,094 |
||||
19.10.2017, 19:54 |
4 |
|||
Я хочу сделать автоматический отступ («КРАСНАЯ СТРОКА» первой строки текста) в ячейке Excel. Если задача заключается в том, чтобы набить перед текущим текстом несколько пробелов, то можно воспользоваться кодом ниже:
0 |
0 / 0 / 0 Регистрация: 27.05.2017 Сообщений: 20 |
|
19.10.2017, 20:19 [ТС] |
5 |
Если бы всё было так просто…
0 |
4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
|
19.10.2017, 21:09 |
6 |
Excel не Word, но можете попробовать что-то вроде :
0 |
Заблокирован |
||||
19.10.2017, 21:35 |
7 |
|||
Сообщение было отмечено Вячеслав1408 как решение Решение
Не по теме: пока сочинял, ответ прозвучал…
1 |
0 / 0 / 0 Регистрация: 27.05.2017 Сообщений: 20 |
|
19.10.2017, 21:42 [ТС] |
8 |
Excel не Слушай, ну вроде работает! Спасибо! И ещё, можно ли его привязать к другому событию. Например Activate. Сам пробовал выдаёт ошибку. Добавлено через 4 минуты
пока сочинял, ответ прозвучал… А можешь на примере прислать, а то я «по пояс деревянный». Могу не совладать с высокими материями….
0 |
pashulka 4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
||||
19.10.2017, 21:51 |
9 |
|||
Вячеслав1408, Событие Worksheet_Change выполняется после изменения данных в ячейках, поэтому его не нужно запускать. И в моём варианте нет ограничений, так что меняйте данные в любой ячейке. Остап Бонд, можно ещё и так :
0 |
0 / 0 / 0 Регистрация: 27.05.2017 Сообщений: 20 |
|
19.10.2017, 21:56 [ТС] |
10 |
Событие Worksheet_Change выполняется после изменения данных в ячейках, поэтому его не нужно запускать. И в моём варианте нет ограничений, так что меняйте данные в любой ячейке. Да это я курсе… Но ты знаешь, что-то никак не запускается… Добавлено через 2 минуты
Остап Бонд, можно ещё и так : А можешь на примере прислать?
0 |
4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
|
19.10.2017, 22:05 |
11 |
Вячеслав1408, Если первый раз получилось, а затем никак … то либо после блокировки событий, возникла ошибка, либо Вы «игрались» с событиями и выполнили эту строку Application.EnableEvents = False. В любом случае, верните всё на круги своя Application.EnableEvents = True и продолжите тестирование, в т.ч. и с формулами, которые будут заменены на их значения.
0 |
Заблокирован |
||||||||
19.10.2017, 22:06 |
12 |
|||||||
Сообщение было отмечено Вячеслав1408 как решение Решение
можно ещё и так При вставке новых «абзацев» отступы предыдущих будут расти.
я записал бы так
а то как-то не по линеечке выровняны абзацы…
1 |
4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
|
19.10.2017, 22:15 |
13 |
При вставке новых «абзацев» отступы предыдущих будут расти. В моём не будут, в Вашем — да.
а то как-то не по линеечке выровняны абзацы… опять фантазии, везде добавлен один и тот же отступ, а не по линеечке, это из-за выравниваний.
0 |
0 / 0 / 0 Регистрация: 27.05.2017 Сообщений: 20 |
|
19.10.2017, 22:20 [ТС] |
14 |
Не
Если первый раз получилось, а затем никак … то либо после блокировки событий, возникла ошибка, либо Вы «игрались» с событиями и выполнили эту строку Application.EnableEvents = False. В любом случае, верните всё на круги своя Application.EnableEvents = True и продолжите тестирование, в т.ч. и с формулами, которые будут заменены на их значения. Не знаю всё удалил…. Заново скачал приложенный файл, открыл. Нажимаю, изменяю — ничего не происходит. Добавлено через 4 минуты
Visual BasicВыделить код А можно этот макрос на примере?
0 |
4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
|
19.10.2017, 22:26 |
15 |
Остап Бонд, сорри, неверно понял Ваш мессаж. но если использовать application.trim то можно один replace, собственно, так и было в моём первоначальном примере.
0 |
0 / 0 / 0 Регистрация: 27.05.2017 Сообщений: 20 |
|
19.10.2017, 22:44 [ТС] |
16 |
А может мне всё-таки кто-нибудь поможет???
0 |
Заблокирован |
||||
19.10.2017, 23:42 |
17 |
|||
Вячеслав1408, скопируйте строку кода
верните всё на круги своя
в окно Immediate (Ctrl+G) и ткните НА НЕЙ [Enter].
0 |
0 / 0 / 0 Регистрация: 27.05.2017 Сообщений: 20 |
|
20.10.2017, 06:25 [ТС] |
18 |
Вячеслав1408, скопируйте строку кода Уважаемый Остап Бонд, в очередной раз прошу прислать Ваш вариант на примере файла. Я так понимаю он применён к конкретному диапазону, а не ко всему листу, как это сделано у pashulka. Поэтому Ваш пример мне предпочтительнее.
0 |
Заблокирован |
||
20.10.2017, 06:43 |
19 |
|
Сообщение было отмечено Вячеслав1408 как решение Решениевот Вложения
1 |
0 / 0 / 0 Регистрация: 27.05.2017 Сообщений: 20 |
|
20.10.2017, 06:57 [ТС] |
20 |
ВОТ ЭТО ДЕЛО! Спасибо огромное! Всё работает! Только вот что: Когда в ячейку вставлена формула, которая ссылается на другую ячейку (в той где текст заполняется), макрос стирает формулу и оставляет текст…. Можно это как-то исправить?
0 |
In Excel column «C» has values of either Yes or No. If the value is «No» then I want to indent the value of column «D» 2 indents if possible. How would one accomplish this?
asked Apr 30, 2015 at 17:49
1
Try this:
For Each i in Sheets("sheetname").Range("C1:C100") ' change to last row number
If i.Value = "No" Then
i.Offset(0,1).InsertIndent 2 ' Offset selection from column C to D
End If
Next i
Explanation: For each
loops through the cells in column C. For every round of the loop, the current cell in column C is assigned to the variable i
. You then check, whether that cell’s value is «No» and if yes, you add the two «indents» to the neighboring cell in column D. (using the Offset(rows, cols)
function. Offset(0,1)
= same row, one column to the right)
answered Apr 30, 2015 at 18:06
nicolaus-heenicolaus-hee
7871 gold badge9 silver badges25 bronze badges
How about:
Sub IndentD()
For Each r In Intersect(Range("C:C"), ActiveSheet.UsedRange)
If r.Text = "No" Then
r.Offset(0, 1).InsertIndent 2
End If
Next r
End Sub
answered Apr 30, 2015 at 18:05
Gary’s StudentGary’s Student
95.3k9 gold badges58 silver badges98 bronze badges
1
На чтение 3 мин. Просмотров 144 Опубликовано 15.12.2019
Содержание
- Зачем это нужно?
- Решение проблемы
- 2 ответа
- про бизнес и себя
Зачем это нужно?
Практически каждый пользователь Excel знает, что содержимое в ячейках можно выравнивать по левому и правому краю, а также по центру. При чем по умолчанию числовые значения автоматически выравниваются по правому краю, а текстовые значения по левому. В таком расположении данные удобнее всего читать.
Неудобство анализа возникает в том случае, когда столбец с текстовыми данными расположен после столбца с числовыми значениями. В этом случае числа очень близко расположены к тексту и данные тяжело воспринимать (особенно на больших таблицах).
Решение проблемы
Придать данным большей наглядности помогут отступы. Мало кто знает, но ставить отступы можно как слава так и справа от ячейки. Чтобы задать эти отступы необходимо:
- Выделить ячейки в которых хотите установить отступы. В нашем примере столбцы Товар и Магазин (можно столбцы целиком).
- Открыть диалоговое окно Формат ячеек. Для этого на вкладке Главная выберите Параметры выравнивания.
- В поле Выравнивание по горизонтали укажите По левому краю (отступ).
- В поле Отступ введите значение 1 (как правило больше не нужно). Нажмите OK.
В результате этих действий добавится отступ слева от ячеек и данные станет намного удобнее читать. Посмотрите на итоговый результат.
Аналогичным образом можно было бы установить отступ по правому краю для столбцов Цена и № п/п. Какой способ лучше выбирать вам, главное добиться большей наглядности данных.
0 Tamela [2015-04-30 20:49:00]
В столбце Excel «C» есть значения либо «Да», либо «Нет». Если значение «Нет», я хочу, если это возможно, отступать от значения столбца «D» 2 отступов. Как это сделать?
vba indentation excel
2 ответа
0 Решение Gary’s Student [2015-04-30 21:05:00]
2 nhee [2015-04-30 21:06:00]
Объяснение: For each цикла через ячейки в столбце C. Для каждого цикла цикла текущая ячейка в столбце C присваивается переменной i . Затем вы проверяете, является ли значение этой ячейки «Нет», и если да, вы добавляете два «отступа» в соседнюю ячейку в столбце D. (используя функцию » Offset(rows, cols) . Offset(0,1) = такое же строка, одна колонка справа)
про бизнес и себя
Макрос для изменения отступов в документе excel на Листе, на котором запущен макрос. Регулирование отступов происходит через значения в скобках. Мои стандартные параметры ниже:
Sub Macros
‘
With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(0.2)
.RightMargin = Application.InchesToPoints(0.2)
.TopMargin = Application.InchesToPoints(0.4)
.BottomMargin = Application.InchesToPoints(0.4)
.HeaderMargin = Application.InchesToPoints(0.1)
.FooterMargin = Application.InchesToPoints(0.1)
End With
End Sub
Можно дополнить им любой макрос или оставить самостоятельным.
ВикиЧтение
VBA для чайников
Каммингс Стив
Правила для отступов
Правила для отступов
В каких же строках программного кода следует сделать отступ и какой по величине? Нужно установить отступы одного размера для связанных по смыслу операторов, чтобы связь между такими операторами была зрительно очевидной. Конкретнее говоря, операторы, выполняющиеся вместе при каком-то общем условии, должны иметь и одинаковые отступы.
Например, если VBA выполняет операторы внутри конструкции If. . .Then. . .Else.
Do … Loop или For Next как одну группу, то операторы такой группы должны иметь один и тот же отступ. Вот подходящий пример программного кода:
Do While intC 20
intA = intA + 1
If intA = intB Then
intA – 5
intB – 10
.Else
intA = intB
intC = 20
.End If
Loop
VBA выполняет оператор intA = intA + 1 и структуру If.. .Then. .. Else прикаждом проходе структуры Do… Loop. По этой причине я использовал один и тот же отступ и для оператора intA = intA + 1, и для трех операторов, задающих структуру If. . .Then. . .Else ( If. . .Then, Else и End If ). Два оператора, следующие непосредственно за оператором If . . .Then, будут выполняться, если только intA = intE, поэтому эти два оператора получают дополнительный отступ, как и два оператора, следующие за Else.
Обратите внимание, что управляющие структуры типа Do … Loop и If . . . Then. . .Else всегда состоят как минимум из двух операторов (один должен определить начало структуры, а второй — ее конец). Дня структуры Do. . .Loop завершающий оператор Loop, а для If… Then . . .Else — это End If. Если в рамках структуры есть другие операторы, для них следует использовать тот же отступ. Это позволит ясно различить и саму структуру, и содержащиеся в ней подчиненные операторы. (Управляющие структуры будут подробно рассмотрены в главе 8.)
Как сделать отступ
Для добавления отступа в строке программного кода нажмите клавишу пробела или Tab, чтобы сдвинуть текстовый курсор вправо. Можно задать расстояние, на которое клавиша Tab сдвигает курсор, если выбрать Tools=Options. В диалоговом окне Options (Параметры) на вкладке Editor (Редактор) есть поле Tab Width (Отступ табуляции), где можно впечатать число, соответствующее количеству пробелов. Поскольку пространства в окне редактора Visual Basic не слишком много, лично я установил отступ табуляции, равный 3 пробелам, хотя можно указать любое число от 1 до 32.
Если по каким-то причинам нажимать клавишу табуляции вам не слишком удобно, всегда можно сдвинуть начало строки вправо или влево с помощью предлагаемых VBA кнопок Indent (Добавить отступ) и Outdent (Удалить отступ) соответственно. Эти кнопки применяются не только к отдельным строкам, но и к выделенным фрагментам текста, так что одним щелчком можно добавить или убрать отступ целого блока. Обратите внимание на то, что при использовании этих кнопок положение точки ввода в строке игнорируется — всегда увеличивается или уменьшается отступ сразу всей строки.
Читайте также
Правила@
Правила@
Правила @ начинаются с ключевого слова @, непосредственно за которым следует идентификатор (например, @import, @page). Каждый из этих идентификаторов далее рассмотрим подробнее.Все же надо отметить, что браузер с поддержкой CSS будет игнорировать все правила @import, которые
Свойства отступов
Свойства отступов
Свойства отступов позволяют задать ширину области отступов блока.Всего существует четыре свойства отступов: padding-top, padding-right, padding-bottom и padding-left, которые задают верхний, правый, нижний и левый отступы соответственно. Эти свойства можно комбинировать.
Параметры отступов
Параметры отступов
Стандарт CSS предлагает средства для создания отступов двух видов.1. Отступ между воображаемой границей элемента Web-страницы и его содержимым — внутренний отступ. Такой отступ принадлежит данному элементу Web-страницы, находится внутри его.2. Отступ
Параметры отступов и рамок
Параметры отступов и рамок
Для задания отступов мы можем пользоваться атрибутами стиля, знакомыми нам по главе 11.— Для задания внутренних отступов между содержимым ячейки и ее границей — атрибутами стиля padding-left, padding-top, padding-right, padding-bottom и padding.— Для задания внешних
Правила
Правила
Правила используются в таблицах стилей для особых нужд.charsetЗадает текстовую кодировку для внешней таблицы стилей.@charset {Кодировка};Пример:@charset «windows-1251»;Может использоваться только во внешних таблицах стилей; должна быть первой строкой в файле. Поддерживается IE
4.11.4. Правила «все кроме»
4.11.4. Правила «все кроме»
Очень часто приходится задавать правила в виде «все кроме». Например, нужно запретить доступ к порту telnet всем пользователям, кроме компьютера с адресом 192.168.77.10. Лучше поступить следующим образом: сначала разрешить доступ для компьютера 192.168.77.10, а
Параметры отступов
Параметры отступов
Стандарт CSS предлагает средства для создания отступов двух видов.1. Отступ между воображаемой границей элемента Web-страницы и его содержимым — внутренний отступ. Такой отступ принадлежит данному элементу Web-страницы, находится внутри его.2. Отступ
Параметры отступов и рамок
Параметры отступов и рамок
Для задания отступов мы можем пользоваться атрибутами стиля, знакомыми нам по главе 11.— Для задания внутренних отступов между содержимым ячейки и ее границей — атрибутами стиля padding-left, padding-top, padding-right, padding-bottom и padding.— Для задания внешних
19.6.5. Правила фильтрации
19.6.5. Правила фильтрации
Задание правил фильтрации IPTables похоже на задание правил в IPChains. Для создания правила используется опция —append (или -А). После этой опции указывается имя цепочки и критерий выбора пакетов в этой цепочке. Затем указывается опция —jump (или -j), значением
§ 165. Три правила про вы
§ 165. Три правила про вы
7 сентября 2010В русском языке существует местоимение вы, к которому прилагаются довольно простые правила употребления и неупотребления.Вы всегда пишется с маленькойСовершенно невыносима рекламно-подобострастная манера писать Вы с заглавной
1.5. Правила
1.5. Правила
Предположим, мы хотим сформулировать утверждение, что Джону нравятся все люди. Один из способов сделать это заключается в записи для каждого человека, упоминаемого в базе данных, отдельного факта:нравится(джон,альфред). нравится(джон,бертран).
2.1. Синтаксические правила
2.1. Синтаксические правила
Синтаксические правила языка описывают допустимые способы соединения слов. В соответствии с нормами английского языка предложение «I see a zebra» («я вижу зебру») является синтаксически правильным в отличие от предложения «zebra see I а» («зебра видит
15.4.3. Правила make
15.4.3. Правила make
Некоторые из наиболее интенсивно используемых правил в типичных make-файлах вообще не выражают зависимостей. Они позволяют связать небольшие процедуры, которые разработчик хочет механизировать, например, создание дистрибутивного пакета или удаление всех
15.4.3. Правила make
15.4.3. Правила make
Некоторые из наиболее интенсивно используемых правил в типичных make-файлах вообще не выражают зависимостей. Они позволяют связать небольшие процедуры, которые разработчик хочет механизировать, например, создание дистрибутивного пакета или удаление всех