首页 文章

VBA Excel:如何获取命名范围的行数和列数?

提问于
浏览
1

我有以下问题,它正在驱使我坚果!我在Excel中处理大型数据库程序,我正在尝试检索特定命名范围的行号和列号 . 以下代码用于工作(temp_entryvalue是范围的名称):

temp_datafile_row = Workbooks(datafile_filepath).Worksheets(temp_datafile_worksheet).Range(temp_entryvalue).Row
temp_datafile_col = Workbooks(datafile_filepath).Worksheets(temp_datafile_worksheet).Range(temp_entryvalue).Column

我得到了'错误1004.故障排除,这里的问题似乎是与temp_entryvalue相关的范围隐藏在Excel工作表中,但名称已定义,并且分配了行号和列号 .

然而,这一切都曾经奏效 . 直到我改变了一件事:我没有直接写入数据库excel工作表,而是先将所有内容都放在一个数组中,这样只有在最后我打开数据库工作表并复制所有数据 . 在我这样做之前,一切都很好 .

那么我该如何解决这个问题呢?如何检索隐藏的命名范围的行号和列号,但是DOES是否有与之关联的行号和列号?

谢谢 .

1 回答

  • 0

    那是你在那里的一个奇怪的问题 . 但是,一般来说,获取隐藏工作表的列和行应该是微不足道的,因此我认为你在某处犯了一些小错误 .

    打开一个新的Excel文件并尝试以下代码:

    Option Explicit    
    Public Sub TestMe()      
    
        Dim tempEntryvalue As Range
    
        Set tempEntryvalue = Worksheets(1).Range("A1:Z10")
        Worksheets(1).Visible = xlVeryHidden        
        Debug.Print tempEntryvalue.Row
        Debug.Print tempEntryvalue.Column  
    
    End Sub
    

    或者,如果你的意思是 NamedRange (如果范围被声明为变量,你的代码看起来如此),那么这可能是最简单的解决方案:

    Public Sub TestMe()    
    
        Debug.Print [temp_entryvalue].Row
        Debug.Print [temp_entryvalue].Column
        Debug.Print Range("temp_entryvalue").Row
        Debug.Print Range("temp_entryvalue").Column    
    
    End Sub
    

相关问题