ItNikolai
Дата: Четверг, 06.02.2020, 17:06 |
Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация:
0
±
Замечаний:
0% ±
Excel 2019
В выгрузке в Excel документ формируется таблица, состоящая из множества столбцов. Есть ли способ с помощью макроса оставлять определенные столбцы (по номеру или по названию). Так же после таблицы вставлять текст (шаблонный).
В выгрузке в Excel документ формируется таблица, состоящая из множества столбцов. Есть ли способ с помощью макроса оставлять определенные столбцы (по номеру или по названию). Так же после таблицы вставлять текст (шаблонный). ItNikolai
Ответить
Сообщение В выгрузке в Excel документ формируется таблица, состоящая из множества столбцов. Есть ли способ с помощью макроса оставлять определенные столбцы (по номеру или по названию). Так же после таблицы вставлять текст (шаблонный). Автор - ItNikolai Дата добавления - 06.02.2020 в 17:06
InExSu
Дата: Четверг, 13.02.2020, 17:30 |
Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 648
Репутация:
96
±
Замечаний:
0% ±
Excel 2010, 365
Привет! Удаление столбцов во вложении.
[vba]
Код
Option Explicit Sub Столбцы_Удалить() Dim a1() As Variant: a1 = Array("Марка", "Модель", "Тип", "Серийный №") Dim rng As Range: Set rng = Range_A1_NOT(Worksheets("Equipment").UsedRange.Rows(1).Cells, a1) Worksheets("Equipment").Activate If Not rng Is Nothing Then rng.EntireColumn.Select 'Delete End Sub Function Range_A1_NOT( _ rng As Range, _ a1() As Variant) _ As Range ' вернуть диапазон, НЕ содержащий значения из a1 Dim cel As Range, rng_New As Range For Each cel In rng If Not In_A1(cel.Value, a1) Then Set rng_New = App_Union(rng_New, cel) End If Next Set Range_A1_NOT = rng_New End Function Function In_A1( _ vVal As Variant, _ a1() As Variant) _ As Boolean ' есть ли vVal в массиве a1 Dim el As Variant, bingo As Boolean: bingo = False For Each el In a1 If el = vVal Then bingo = True Exit For End If Next In_A1 = bingo End Function Function App_Union(rng_Union As Range, _ rng As Range) _ As Range If Not rng_Union Is Nothing Then If Not rng Is Nothing Then Set App_Union = Application.Union( _ rng_Union, rng) Else Set App_Union = rng_Union End If Else Set App_Union = rng End If End Function
[/vba]
Привет! Удаление столбцов во вложении.
[vba]
Код
Option Explicit Sub Столбцы_Удалить() Dim a1() As Variant: a1 = Array("Марка", "Модель", "Тип", "Серийный №") Dim rng As Range: Set rng = Range_A1_NOT(Worksheets("Equipment").UsedRange.Rows(1).Cells, a1) Worksheets("Equipment").Activate If Not rng Is Nothing Then rng.EntireColumn.Select 'Delete End Sub Function Range_A1_NOT( _ rng As Range, _ a1() As Variant) _ As Range ' вернуть диапазон, НЕ содержащий значения из a1 Dim cel As Range, rng_New As Range For Each cel In rng If Not In_A1(cel.Value, a1) Then Set rng_New = App_Union(rng_New, cel) End If Next Set Range_A1_NOT = rng_New End Function Function In_A1( _ vVal As Variant, _ a1() As Variant) _ As Boolean ' есть ли vVal в массиве a1 Dim el As Variant, bingo As Boolean: bingo = False For Each el In a1 If el = vVal Then bingo = True Exit For End If Next In_A1 = bingo End Function Function App_Union(rng_Union As Range, _ rng As Range) _ As Range If Not rng_Union Is Nothing Then If Not rng Is Nothing Then Set App_Union = Application.Union( _ rng_Union, rng) Else Set App_Union = rng_Union End If Else Set App_Union = rng End If End Function
[/vba]
InExSu
Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
Ответить
Сообщение Привет! Удаление столбцов во вложении.
[vba]
Код
Option Explicit Sub Столбцы_Удалить() Dim a1() As Variant: a1 = Array("Марка", "Модель", "Тип", "Серийный №") Dim rng As Range: Set rng = Range_A1_NOT(Worksheets("Equipment").UsedRange.Rows(1).Cells, a1) Worksheets("Equipment").Activate If Not rng Is Nothing Then rng.EntireColumn.Select 'Delete End Sub Function Range_A1_NOT( _ rng As Range, _ a1() As Variant) _ As Range ' вернуть диапазон, НЕ содержащий значения из a1 Dim cel As Range, rng_New As Range For Each cel In rng If Not In_A1(cel.Value, a1) Then Set rng_New = App_Union(rng_New, cel) End If Next Set Range_A1_NOT = rng_New End Function Function In_A1( _ vVal As Variant, _ a1() As Variant) _ As Boolean ' есть ли vVal в массиве a1 Dim el As Variant, bingo As Boolean: bingo = False For Each el In a1 If el = vVal Then bingo = True Exit For End If Next In_A1 = bingo End Function Function App_Union(rng_Union As Range, _ rng As Range) _ As Range If Not rng_Union Is Nothing Then If Not rng Is Nothing Then Set App_Union = Application.Union( _ rng_Union, rng) Else Set App_Union = rng_Union End If Else Set App_Union = rng End If End Function
[/vba]
Автор - InExSu Дата добавления - 13.02.2020 в 17:30
Kuzmich
Дата: Четверг, 13.02.2020, 17:51 |
Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 713
Репутация:
157
±
Замечаний:
0% ±
Excel 2003
Ответить