Vba excel повторить символ несколько раз

Обновлено: 04.07.2024

А то неохота несколько раз писать:
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select

Можно ли это сократить это до одной строки?

могут помочь организовать циклы.
А вот что конкретно нужно сделать в Вашем случае, простите, не совсем понятно.
И еще посмотрите вот это Управляющие структуры VBA . Циклы "Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499 Последний раз редактировалось VictorM; 17.09.2008 в 15:32 .

Это часть кода.
Смысл в том, что на листе sheet1 в файле Sales необходимо операцию Selection.End(xlDown).Select выполнить 6 раз. Вопрос - можно ли эти 6 строк заменить одной?

З.Ы. Ссылка битая.

Повторить любую операцию несколько раз можно, наример так

но честное слово не пойму для чего нужно 6 раз повторять Selection.End(xlDown).Select

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

"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499

Спасибо огромное, я бы с удовольствием объяснил, но боюсь это будет слишком долго.

Еще раз спасибо.

а по поводу шесть раз xlDown:
А может Вам нужно просто найти последнюю занятую ячейку в столбце??
Это можно сделать без циклов.
например, так:
Прыгаем вверх до последней заполненной ячейки в нужном столбце:

где col - номер нужного столбца.

и ещё - постарайтесь в макросах не использовать .Select .Activate без крайней на то необходимости!
поверьте найти нужную ячейку, скопировать диапазон можно и без того, чтобы делать эти ячейки выделенными.

а по поводу шесть раз xlDown:
А может Вам нужно просто найти последнюю занятую ячейку в столбце??
Это можно сделать без циклов.
например, так:
Прыгаем вверх до последней заполненной ячейки в нужном столбце:

где col - номер нужного столбца.

и ещё - постарайтесь в макросах не использовать .Select .Activate без крайней на то необходимости!
поверьте найти нужную ячейку, скопировать диапазон можно и без того, чтобы делать эти ячейки выделенными.

в следующей таблице перечислены функции, которые Visual Basic предоставляет в Microsoft.VisualBasic.Strings классе для поиска и работы со строками. их можно рассматривать как Visual Basic встроенных функций; то есть вам не нужно вызывать их как явные члены класса, как показано в примерах. Дополнительные методы и в некоторых случаях дополняют методы, доступны в System.String классе.

Можно использовать инструкцию Option Compare , чтобы задать, сравниваются ли строки с использованием порядка сортировки текста без учета регистра, определенного языковым стандартом системы ( Text ) или внутренними двоичными представлениями символов ( Binary ). Метод сравнения текста по умолчанию — Binary .

Пример: Укасе

В данном примере функция UCase используется для возврата строки в верхнем регистре.

Пример: LTrim

В данном примере функция LTrim используется, чтобы убрать пробелы в начале, а функция RTrim — чтобы убрать пробелы в конце строковой переменной. Функция Trim в примере используется для удаления обоих типов пробелов.

Пример: mid

В этом примере Mid функция используется для возврата указанного числа символов из строки.

Пример: len

В данном примере Len используется для возврата числа знаков в строке.

Пример: InStr

В данном примере функция InStr используется для возврата позиции первого вхождения одной строки в другую.

Пример: Format

В данном примере показаны различные способы использования функции Format для форматирования значений с применением как форматов String , так и определенных пользователем форматов. Фактическое отображение системой разделителя даты ( / ), разделителя времени ( : и индикаторов AM/PM ( t и tt ) зависит от региональных параметров, применяемых кодом. При отображении времени и даты в среде разработки используется короткий формат времени и даты региональных установок кода.

Для языков, использующих 24-часовой формат, индикаторы AM/PM ( t и tt ) не отображаются.


Например, у вас есть список значений в столбце A, и вы хотите повторить значения определенное количество раз в зависимости от количества раз в столбце B, как показано на скриншоте слева, как вы могли бы добиться этого в Excel?

  • Повторите значения ячеек X раз с формулой и вспомогательным столбцом
  • Повторить значения ячеек X раз с кодом VBA
  • Копируйте и вставляйте значения ячеек X раз с потрясающей функцией

Повторите значения ячеек X раз с формулой и вспомогательным столбцом

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

1. Вставьте столбец слева от столбца A и введите 1 в ячейку A2, см. Снимок экрана:


2. Затем положите эту формулу = A2 + C2 в A3 и перетащите маркер заполнения в ячейку A6, см. снимок экрана:


3. Затем введите 1 в ячейку D2 и заполните число, перетащив Автозаполнение на 12, что является общим числом раз в столбце C, см. Снимок экрана:


4. Затем введите эту формулу = ВПР (D2; $ A $ 1: $ B $ 6,2) в ячейку E2 и скопируйте, вы получите следующий результат:


  • Заметки:
  • 1. В этой формуле D2 обозначает первую ячейку, которую вы заполняете числовой последовательностью, и A1: B6 обозначает диапазон первого вспомогательного столбца и исходных значений ячеек, которые необходимо повторить.
  • 2. После получения повторяющихся значений вы можете скопировать и вставить их как значения в любое другое место.

Легко копируйте и вставляйте строки X раз на основе определенного числа

Обычно нет хорошего метода для многократного копирования и вставки строк, за исключением ручного копирования и вставки. Но с Kutools for Excel's Повторяющиеся строки / столбцы на основе значения ячейки функция, вы можете легко решить эту проблему. Нажмите, чтобы загрузить Kutools for Excel!


Kutools for Excel: с более чем 300 удобными надстройками Excel, которые можно попробовать бесплатно без ограничений в течение 60 дней. Загрузите и бесплатную пробную версию прямо сейчас!

Повторить значения ячеек X раз с кодом VBA

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

1. Удерживайте ALT + F11 ключи, и он открывает Окно Microsoft Visual Basic для приложений.

2. Нажмите Вставить > Модульи вставьте следующий код в Окно модуля.

Код VBA: повторить значения ячеек X раз

3, Затем нажмите F5 нажмите клавишу для запуска этого кода, и появится диалоговое окно с напоминанием о выборе диапазона, который содержит значения и повторяющиеся времена, см. снимок экрана:


4, И нажмите OKпоявится другое окно подсказки, позволяющее выбрать ячейку для отображения результата, см. снимок экрана:


5. Затем нажмите OK, и вы получите результат, что выбранные вами значения были повторены указанное количество раз по мере необходимости.


Копируйте и вставляйте значения ячеек X раз с потрясающей функцией

Иногда вам может потребоваться скопировать и вставить значения ячеек x раз в зависимости от определенного числа, Kutools for Excel's Повторяющиеся строки / столбцы на основе значения ячейки может помочь вам быстро скопировать и вставить строки на основе указанного вами числа.

Советы: Чтобы применить это Повторяющиеся строки / столбцы на основе значения ячейки функция, во-первых, вы должны скачать Kutools for Excel, а затем быстро и легко примените эту функцию.

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

1. Нажмите Kutools > Вставить > Повторяющиеся строки / столбцы на основе значения ячейки, см. снимок экрана:


2. В Копировать и вставлять строки и столбцы диалоговое окно, выберите Копировать и вставлять строки вариант в Тип раздел, затем выберите диапазон данных, который вы хотите продублировать, а затем укажите время повторения для копирования и вставки строк, см. снимок экрана:


4, Затем нажмите Ok or Применить кнопку, вы получите такой результат, как вам нужно:

Для данных типа String существует только одна операция - конкатенация (объединение). Например, результатом операции конкатенации трех строковых значений «Петр» & " " & «Иванович» будет строка «Петр Иванович». Возможно также использование другого оператора для операции конкатенации, например: «десяти» + «тысячник». Разница между этими выражениями состоит в том, что в первом случае операндами могут быть значения любого типа (они просто будут преобразовываться в строковые), а во втором - оба операнда должны иметь тип String.

Для работы со строками существует большое количество функций (таблица. Функции работы со строками).

Таблица «Функции работы со строками»

Функция Описание Пример
Len(str) Определяет длину строки Из а=lеn("Персонажи") следует а=9
Left (<строка>, <длина>) Выделяет из аргумента <строка> указанное количество символов слева Left(" 1234string", 4) ="1234"
Right(<строка>, <длина>) Выделяет из аргумента <строка> указанное количество символов справа Right(" 1234string", 6) ="string"
Mid(<строка>, <старт> [, <длина>]) Выделяет из аргумента <строка> подстроку с указанным числом символов, начиная с позиции <старт> Mid ("12345678", 4, 3) ="456"
Mid(<строка>, <старт>) Выделяется подстрока от позиции <старт> до конца строки Mid ("12345678", 4) ="45678"
LTrim (<строка>) Удаляет пробелы в начале строки LTrim(" печать") ="печать"
RTrim (<строка>) Удаляет пробелы в конце строки RTrim("печать ") ="печать"
Trim (<строка>) Удаляет пробелы в начале и в конце строки Trim(" печать ") ="печать"
InStr([<старт>, ] < строка 1>, <строка 2> [, <сравнение>]) Производит поиск подстроки в строке. Возвращает позицию первого вхождения строки <строка 2> в строку <строка 1>, <старт> - позиция, с которой начинается поиск. Если этот аргумент пропущен, поиск начинается с начала строки Instr("C:Temp test.mdb", "Test")=9 Если искомая строка не находится в указанной строке, функция возвращает 0
InStrRev ([<старт>, ] <строка 1>, <строка 2> [, <сравнение>]) Ищет подстроку в строке, но начинает поиск с конца строки и возвращает позицию последнего вхождения подстроки. Необязательный аргумент <сравнение> определяет тип сравнения двух строк
Replace (<строка>, <строка Поиск>, <строка Замена>) Позволяет заменить в строке одну подстроку другой. Эта функция ищет все вхождения аргумента <строка Поиск> в аргументе <строка> и заменяет их на <строка Замена>

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

Следующие три функции позволяют работать с массивом строк

  • Split (<строка> [, <разделитель>]) - преобразует строку в массив подстрок. По умолчанию в качестве разделителя используется пробел. Данную функцию удобно использовать для разбиения предложения на слова. Однако можно указать в этой функции любой другой разделитель. Например, Split(3, «Это тестовое предложение») возвращает массив из трех строковых значений: «Это», «тестовое», «предложение».
  • Join (<массив Строк> [, <разделитель>]) - преобразует массив строк в одну строку с указанным разделителем.
  • Filter (<массив Строк>, <строка Поиск>[, <включение>] [, <сравнение>]) - просматривает массив строковых значений и ищет в нем все подстроки, совпадающие с заданной строкой.

Эта функция имеет четыре аргумента:

  • <строка Поиск> - искомая строка;
  • <включение> - параметр (boolean значение), который указывает, будут ли возвращаемые строки включать искомую подстроку или, наоборот, возвращаться будут только те строки массива, которые не содержат искомой строки в качестве подстроки;
  • <сравнение> - параметр, определяющий метод сравнения строк.

Еще три функции обеспечивают преобразование строк:

  • LCase (<строка>) - преобразует все символы строки к нижнему регистру, например функция LCase(«ПОЧTA») возвращает строку «почта»;
  • UCase (<строка>) - преобразует все символы строки к верхнему регистру;
  • StrConv (<строка>, <преобразование>) - выполняет несколько типов преобразований строки в зависимости от второго параметра. Этот параметр описывается встроенными константами, например функция StrConv(«poccия», VbProperCase) возвращает значение «Россия».

И последние две функции генерируют строки символов

  • Space (<число>) - создает строку, состоящую из указанного числа пробелов;
  • String (<число>, <символ>) - создает строку, состоящую из указанного в первом аргументе числа символов. Сам символ указывается во втором аргументе.

Пример

1 метка: сообщается длина строки, введенной в первое текстовое поле (1 строка);

2 метка: преобразует все символы третьего текстового поля (3 строка) в заглавные буквы;

3 метка: выводит вместе содержание первого и второго текстовых полей (1 и 2 строки).

Хороший фреймворк (framework) лучшее решение для безпроблемной работы со строками.


Макрос в VBA, копирование строк указанное количество раз, и группировка
Добрый день, помогите пожалуйста с макросом, который при вводе в определенную ячейку, какой либо.

Запуск макроса в указанное время, Word
Я ещё не искал по этой теме ничего, т.к. есть др. задачи, которые я решаю очень медленно. Вопрос в.


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

Выполнить цикл while указанное количество раз
привет ,как сделать так чтобы цикл количество равное число. то есть while(3)< ну нужно.

Спасибо за ответы VladConn и vith, попробую оба варианта. Rekursii ne rekomenduyutsya v VB/VBA. Eto mnogokratno obsuzhdalos' kak v etom, tak i vo mnogix drugix forumax. Кстати, а так ли необходимо многократно вызывать процедуру? Может быть в твоём случае достаточно, что предпочтительнее, организовать в макросе цикл? Структура простая:
Да последний вариат являеся наиболее оптимальным, воспользуюсь им. Спасибо.


Вывести звездочки и точки указанное количество раз
Решаю задачу: Напишите программу, использующую вложенные циклы, которая запрашивает у.

Выделить те символы, которые встречаются в исходной строке указанное количество раз
Необходимо выполнить с помощью ассемблерной вставки. Я очень-очень новичок в этом, получилось типа.


Отредактировать заданный текст, удалив из него слова, которые встречаются указанное количество раз
Отредактировать заданный текст, удалив из него слова, которые встречаются указанное количество раз.


Выполнение функции заданное количество раз
Добрый день. Вопрос, конечно, детский, но позволю его себе задать, так как изучаю jquery не с.

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