Excel VBA найти последний столбец с данными, очистить два столбца справа - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть VBA для функции копирования и вставки.Я хотел бы иметь то же самое для функции прозрачных клеток.Я хочу найти последнюю ячейку в строках 10:31 с данными справа и очистить два последних столбца в строках 10:31.

Я использую lastcolumn = Cells(1, Columns.Count).End(xlToRight).Column, чтобы найти последнюю ячейку с данными справа.

Как я могу установить строки 10:31 и реализовать ClearContents для выполнения работы?

10 data data1 data2 data3 data4 data5 data6 data7 data8
11 data data1 data2 data3 data4 data5 data6 data7 data8
12 data data1 data2 data3 data4 data5 data6 data7 data8
13 data data1 data2 data3 data4 data5 data6 data7 data8
14 data data1 data2 data3 data4 data5 data6 data7 data8
...
31 data data1 data2 data3 data4 data5 data6 data7 data8

Идея состоит в том, что если я нажму кнопку один раз, "data8 и data7" будут очищены, тоЯ нажимаю кнопку еще раз «data6 и data5» будут очищены.Снова нажал кнопку «data4 и data3», и так далее ... Вот мой код:

Sub Remove()
Application.ScreenUpdating = False
Dim lastcolumn As Integer
Dim lastrow As Long

'finds the last used column coming from the right
lastcolumn = Cells(1, Columns.Count).End(xlToRight).Column
Worksheets("Price calculation").Range("10:31").Offset(0, 1).ClearContents

Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

1 Ответ

0 голосов
/ 30 ноября 2018

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

With Worksheets("Price calculation")
    lc = .cells(10,.columns.count).end(xltoleft).column
    .Range(.cells(10,lc-2),.cells(31,lc)).ClearContents
End with
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...