【问题标题】:Next cell on Union range VBA联合范围 VBA 上的下一个单元格
【发布时间】:2016-10-18 10:01:26
【问题描述】:

需要帮助才能在没有循环的情况下找到联合范围中的下一个单元格。
目前,它适用于我的循环。

Private Sub Worksheet_Change(ByVal Target As Range)
    Set op = Union(Range("A1", "A2"), Range("A4", "A5"), Range("A9", "A10"))
    If Not Intersect(Target, op) Is Nothing Then
        On Error Resume Next
        For Each cell In op
            If te = 1 Then
                cell.Select
                Exit Sub
            End If
            If cell.Address = Target.Address Then
                te = 1
            End If
        Next cell
        On Error GoTo 0
    End If
End Sub

如果没有“对于范围内的每个单元格”,我没有找到如何获取范围内的单元格。 并且没有找到我怎么知道在我的特定联合范围内选定的单元格的数量。

我需要做的是在联合中找到下一个单元格,该单元格紧跟在 Worksheet_Change 检测到其编辑的单元格之后。

【问题讨论】:

  • “下一个单元格” 相对于什么? te 是什么?你最好提供更多关于你的总体目标的细节
  • ActiveSheet.Cells([RowIndex], [ColumnIndex]) 呢?
  • 我更改了联合区域中的单元格,需要选择联合上的下一个单元格。例如,如果我的范围 =Union(Range("A1", "A2"), Range("A4", "A5"), Range("A9", "A10")) 并且我更改了“A2”单元格,我需要选择联合中的下一个单元格 - “A4”。如果我更改了“A5”,我想找到“A9”单元格。我如何使用 [RowIndex]、[ColumnIndex]?
  • "te" 是我编辑了上一个单元格的通知,下一个单元格是我需要的

标签: vba excel


【解决方案1】:

研究细胞保护。在受保护的工作表上,用户只能访问未锁定的单元格,即 Locked = False。

因此,如果对未锁定的单元格进行编辑,则将选择下一个未锁定的单元格。 这需要以下附加设置:

您的 Union 定义的所有单元格的保护设置为 Locked = False。 所有非联合单元格的保护设置为 Locked = True(无论如何这是默认设置)。 文件 -> 选项 -> 高级 -> 复选框“按 Enter 后,移动选择”。 (这也是默认设置。)

【讨论】:

    猜你喜欢
    • 2014-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-26
    相关资源
    最近更新 更多