Добавьте столбцы рядом с ячейкой, которую я щелкнул перед запуском макроса - PullRequest
0 голосов
/ 26 мая 2020

Надеюсь, у всех все хорошо? В настоящее время я работаю над задачей Excel VBA (я впервые работаю с VBA, поэтому прошу прощения, если задаю глупые вопросы). Одна вещь, которую я изучаю почти 2 дня, и нигде не могу найти решения, - это как добавлять столбцы в лист Excel через VBA. Точнее: я не хочу добавлять столбцы в одну конкретную c позицию (например, «A: B»), а просто щелкаю ячейку, запускаю макрос, и он добавит 77 столбцов прямо рядом с этой ячейкой. . Например, я нажимаю на ячейку B2 и запускаю макрос, я хотел бы иметь 77 пустых столбцов из столбца C и далее. Я тоже искал "ActiveCell", но ничего не добился.

Макрос, который я обнаружил, который до сих пор оказался наиболее полезным:

Sub C_SpaltenEinfügen()
Dim Start As Integer
Start = 2
Range(Cells(1, Start), Cells(1, Start + 77)).EntireColumn.Insert
End Sub

Но я не могу чтобы изменить его с Start = 2 на ActiveCell или что-то близкое к этому, поэтому он будет начинаться только со столбца B. Поскольку набор данных довольно большой (в настоящее время от столбца A до ARW), вычисление всех начальных точек не будет очень эффективным .

Я очень ценю ваше время и помощь!

Заранее большое спасибо, Леа

1 Ответ

1 голос
/ 26 мая 2020

Обратите внимание, что если вы хотите добавить 77 строк, вы должны добавить текущие через 76 строк, потому что первая строка является начальной вставкой. Это можно сделать, дважды щелкнув строку 1:

Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Row = 1 Then
        Range(Columns(Target.Column + 1), Columns(Target.Column + 1 + 76)).Insert
        Cancel = True
    End If
End Sub

. Вы заявили, что хотите, чтобы это было правое , если вы выберете, поэтому .Column+1 смещает столбец, чтобы вы могли работать с ним справа, например, вы дважды щелкаете по B1 и вставляете 77 столбцов перед столбцом C. Я оставил +1 в остальной части диапазона для ясности.

Использование Cancel=True после вставки означает, что вы не вводите ячейку, которую вы дважды щелкнули, чтобы начать ее редактирование.

Обратите внимание, где я выбрал BeforeDoubleClick ... После выбора модуля листа для Sheet1 (Sheet1) я использовал раскрывающиеся списки, выберите Worksheet слева, затем справа я выбрал BeforeDoubleClick: enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...