我正在尝试创建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,最终无法满足我的要求。
答案 0 :(得分:0)
如果用于选择未锁定单元格的代码正在运行(并且足够快地满足您的需要),则只需将go/
|
|_src/
|
|_sacc/
|_github.com/
|_hyperledger/
调整为活动单元格下方所需的“列(包括?)”,请参阅以下代码:
WorkRng