在Vba中获取列数

在Vba中获取列数,vba,excel,Vba,Excel,我想在Vba中编写一个脚本,一旦用户选择一些单元格,它会给我这些单元格的列号?谢谢例如,用户选择单元格(A1、B3),我希望A和B列作为输出 您可以循环选择对象以查看所选内容。以下是来自Microsoft()的代码片段: Range.Rows和Range.Columns分别返回分组为行或列的集合单元格。知道了这一点,我们可以简单地迭代选择中的列 Sub Msgbox_ColumnsInSelection() Dim rColumn As Range Dim s As String

我想在Vba中编写一个脚本,一旦用户选择一些单元格,它会给我这些单元格的列号?谢谢例如,用户选择单元格(A1、B3),我希望A和B列作为输出

您可以循环选择对象以查看所选内容。以下是来自Microsoft()的代码片段:


Range.Rows
Range.Columns
分别返回分组为行或列的集合单元格。知道了这一点,我们可以简单地迭代
选择中的

Sub Msgbox_ColumnsInSelection()
    Dim rColumn As Range
    Dim s As String
    For Each rColumn In Selection.Columns
        s = s & rColumn.column & ","
    Next
    s = Left(s, Len(s) - 1)
    MsgBox "Columns in Selection: " & s
End Sub

这将检查列是否在范围内

Function hasColumn(Target As Range, vColumn As Variant)
    hasColumn = Not Intersect(Target, Target.Parent.Columns(vColumn)) Is Nothing
End Function
用法 Msgbox“第10列在范围=“hasColumn”(选择,10)中

Msgbox“列A在范围=“hasColumn(选择项,“A”)内”


“我想用Vba编写脚本”-已授予权限!:)你所说的输出是什么意思。。。。您必须使用详细描述,因为
输出
可能意味着许多事情。。。A列有超过一百万个单元格,这是脚本的结果。当我运行脚本时,可以打印列A和B被选中。或选择打印列2、3和4。欢迎@Maryam!如果你提供尽可能多的细节,你可能会发现你的问题会得到更多的帮助(和更少的反对票)。根据两句话,很难想象你到底想做什么。你能发布一个屏幕截图或一些代码来显示你拥有什么,你需要发生什么,以及你尝试了什么吗?在这里写问题的更多提示:@ashleedawg谢谢你的建议,这次我得到了我的答案,但下次我肯定会这么做。非常感谢:)非常感谢:)对我来说很好:)你能帮我检查一下在S中我们是否有第1栏吗?我的意思是,我如何通过条件来检查S中是否有第1列?许多人感激@Thomas InzinaYou应该慢慢来,写一个详细的问题,展示您的代码尝试。这将为你的问题提供更好的答案。你还应该看这个系列:我更新了我的答案。@Thomas Inzina谢谢你的链接。我觉得这很有帮助。我刚开始编写代码,现在它只打印suer选择的列(您给我的代码)。下一步,我要做的是,检查列1是否被选中。@Thomas Inzina您能帮助我如何检查该列表中是否有列1吗?非常感谢
Function hasColumn(Target As Range, vColumn As Variant)
    hasColumn = Not Intersect(Target, Target.Parent.Columns(vColumn)) Is Nothing
End Function