在同一列中的ActiveCell下选择所有未锁定的单元格

时间:2019-06-18 10:37:41

标签: excel vba select

我正在尝试创建VBA代码,该代码将允许我选择ActiveCell下特定列中的所有未锁定单元格。

尝试自己解决它,我遇到了部分起作用的代码: Select all blanks cells in a column

在另一页上我也找到了用于在工作表中选择未锁定单元格的代码: https://www.extendoffice.com/documents/excel/1279-excel-select-all-unlocked-cells.html

此代码选择空白行,但固定列中的所有行。

Dim lr As Long
lr = Range("A" & Rows.Count).End(xlUp).Row

Range("A1:A" & lr).SpecialCells(xlCellTypeBlanks).Select 

这将导致在工作表中选择所有未锁定的单元格:

Dim WorkRng As Range
Dim OutRng As Range
Dim Rng As Range
On Error Resume Next
Set WorkRng = Application.ActiveSheet.UsedRange
Application.ScreenUpdating = False
For Each Rng In WorkRng
    If Rng.Locked = False Then
        If OutRng.Count = 0 Then
            Set OutRng = Rng
        Else
            Set OutRng = Union(OutRng, Rng)
        End If
    End If
Next
If OutRng.Count > 0 Then OutRng.Select
Application.ScreenUpdating = True
End Sub

我期望得到的是在excel中手动选择的列中选择所有已解锁(可能已填充或未填充)的单元格。

示例: 范围A1:A4-已锁定,A5已解锁,范围A6:A7已锁定,范围A8:A14已解锁,A15已锁定,A16:A22已解锁 B,C,D列相同

选择A5:使用宏,结果>选择A8:A14和A16:A22, 选择B5:使用宏,结果>选择B8:B14和B16:B22,

这种填充使我可以用相同的内容填充选定的行,或者一键删除它们中的值。

我无法通过:

Worksheets("Sheet1").Select
ActiveCell.Offset(rowOffset:=3).Activate

Range(ActiveCell, ActiveCell.End(xlDown)).SpecialCells(xlCellTypeBlanks).Select

但这只会给我: B8:B14和B16:B22范围,我需要创建新的MACRO,最终无法满足我的要求。

1 个答案:

答案 0 :(得分:0)

如果用于选择未锁定单元格的代码正在运行(并且足够快地满足您的需要),则只需将go/ | |_src/ | |_sacc/ |_github.com/ |_hyperledger/ 调整为活动单元格下方所需的“列(包括?)”,请参阅以下代码:

WorkRng