Дата: Понедельник, 23.12.2013, 15:15 |
Сообщение № 1
Группа: Гости
помогите дописать макрос. Он преобразует 2 столбца в 1 строку, но на столбцах стоит фильтр, как сделать так, чтобы скрытые строки он пропускал ? и разделял их "шт"
Function СКЛЕИТЬ(Диапазон As Range, _ Optional Разделитель_Данных$ = "", _ Optional Переносить_ДА_НЕТ$ = "ДА") As String '--------------------------------------------------------------------------------------- ' Procedure : СКЛЕИТЬ ' Author : Alex_ST ' Purpose : склеить тексты из выделенных ячеек в одну строку с задаваемыми при необходимости разделителями данных из разных ячеек ' Notes : по умолчанию включен перенос строк внутри ячейки '--------------------------------------------------------------------------------------- Dim Слитый_Текст$, Перенос_Строки$, a, i& Перенос_Строки = IIf(UCase(Переносить_ДА_НЕТ) <> "НЕТ", vbLf, " ") a = Application.Trim(Диапазон.Value) If Диапазон.Rows.Count = 1 Then СКЛЕИТЬ = Join(a, Разделитель_Данных): Exit Function For i = 1 To UBound(a) Слитый_Текст = Слитый_Текст & Join(Application.Index(a, i, 0), Разделитель_Данных) & Перенос_Строки Next СКЛЕИТЬ = Left$(Слитый_Текст, Len(Слитый_Текст) - 1) End Function
помогите дописать макрос. Он преобразует 2 столбца в 1 строку, но на столбцах стоит фильтр, как сделать так, чтобы скрытые строки он пропускал ? и разделял их "шт"
Function СКЛЕИТЬ(Диапазон As Range, _ Optional Разделитель_Данных$ = "", _ Optional Переносить_ДА_НЕТ$ = "ДА") As String '--------------------------------------------------------------------------------------- ' Procedure : СКЛЕИТЬ ' Author : Alex_ST ' Purpose : склеить тексты из выделенных ячеек в одну строку с задаваемыми при необходимости разделителями данных из разных ячеек ' Notes : по умолчанию включен перенос строк внутри ячейки '--------------------------------------------------------------------------------------- Dim Слитый_Текст$, Перенос_Строки$, a, i& Перенос_Строки = IIf(UCase(Переносить_ДА_НЕТ) <> "НЕТ", vbLf, " ") a = Application.Trim(Диапазон.Value) If Диапазон.Rows.Count = 1 Then СКЛЕИТЬ = Join(a, Разделитель_Данных): Exit Function For i = 1 To UBound(a) Слитый_Текст = Слитый_Текст & Join(Application.Index(a, i, 0), Разделитель_Данных) & Перенос_Строки Next СКЛЕИТЬ = Left$(Слитый_Текст, Len(Слитый_Текст) - 1) End Functionвиктор