Excel 如何知道组合单元格的列?

Excel 如何知道组合单元格的列?,excel,vba,Excel,Vba,刚才有人问我,我们是否可以使用一个组合列作为参考点,我不知道该回答什么,因为我在这里 当时的想法是: 因此,当您选择组合单元格A时,可以获得该组合单元格的列 为什么?当添加一个新列时,这个新列将被添加到合并单元格中,因此当我们使用VBA时,我们得到该段的列,因为其目的不是依赖于“范围”(“A1:A5”)“如此静态,并且即使在合并单元格所在的位置添加了新列,我们也能够选择该范围的列 因为我们的目的是将组合的单元格作为段来使用,其中我们只需要组合的列,这可以是动态的 如果有人知道更好的方法,欢迎使

刚才有人问我,我们是否可以使用一个组合列作为参考点,我不知道该回答什么,因为我在这里

当时的想法是:

因此,当您选择组合单元格A时,可以获得该组合单元格的列

为什么?当添加一个新列时,这个新列将被添加到合并单元格中,因此当我们使用VBA时,我们得到该段的列,因为其目的不是依赖于“范围”(“A1:A5”)“如此静态,并且即使在合并单元格所在的位置添加了新列,我们也能够选择该范围的列

因为我们的目的是将组合的单元格作为段来使用,其中我们只需要组合的列,这可以是动态的


如果有人知道更好的方法,欢迎使用。

您可以使用两个用户定义的函数确定合并范围的开始和结束。一个用户定义函数确定合并范围的起始单元格,另一个确定合并范围的结束单元格

这是一个如何在公式中使用自定义项的示例

  • 合并范围为D16:E16
  • 单元格D6是合并范围起始列编号的自定义项<代码>合并单元格列开始(D14)
  • 单元格D7是合并范围的结束列编号的自定义项<代码>MergedCellColumnEnd(D14)
  • 单元D4使用D6和D7的结果来构建合并单元的地址范围<代码>地址(第16行,D6)和“:”和地址(第16行,D7)

  • 单元格E4、E6和E7中还显示了各自的公式


可以使用两个用户定义的函数确定合并范围的开始和结束。一个用户定义函数确定合并范围的起始单元格,另一个确定合并范围的结束单元格

这是一个如何在公式中使用自定义项的示例

  • 合并范围为D16:E16
  • 单元格D6是合并范围起始列编号的自定义项<代码>合并单元格列开始(D14)
  • 单元格D7是合并范围的结束列编号的自定义项<代码>MergedCellColumnEnd(D14)
  • 单元D4使用D6和D7的结果来构建合并单元的地址范围<代码>地址(第16行,D6)和“:”和地址(第16行,D7)

  • 单元格E4、E6和E7中还显示了各自的公式


为什么说不通呢@braXYou可以根据此引用识别合并单元格的起始列和结束列为什么没有意义@braXYou可以根据此引用识别合并单元格的起始列和结束列
Private Function MergedCellColumnStart(MergedCell As Range) As Integer

    Dim rng As Range
    Dim rngStart As Range
    Dim rngEnd As Range

        Set rng = MergedCell
        Set rng = rng.MergeArea
        Set rngStart = rng.Cells(1, 1)
        Set rngEnd = rng.Cells(rng.Rows.Count, rng.Columns.Count)

        MergedCellColumnStart = rngStart.Column


End Function

Private Function MergedCellColumnEnd(MergedCell As Range) As Integer

    Dim rng As Range
    Dim rngStart As Range
    Dim rngEnd As Range

        Set rng = MergedCell
        Set rng = rng.MergeArea
        Set rngStart = rng.Cells(1, 1)
        Set rngEnd = rng.Cells(rng.Rows.Count, rng.Columns.Count)

        MergedCellColumnEnd = rngEnd.Column

End Function