访问命名范围来插入值不起作用

问题描述 投票:0回答:1

我有一段代码试图覆盖命名范围中的值,但我得到了

子检查东西()

If Evaluate("Table1RowCount") > Evaluate("Table1LastRowFixed") Then

    ActiveWorkbook.Range("Table1LastRowFixed").Value = Evaluate("Table1RowCount")

End If

结束子

错误发生在“ActiveWorkbook.Range”行。 Table1RowCount 和 Table1LastRowFixed 都是具有托管常量值的工作簿级别范围的命名范围。我正在尝试根据条件更新其中一个。正如您所看到的,Evaulate 函数适用于两个名称范围,但是当我尝试使用 Range 来更新它们时,我收到了错误。

请注意,我已经尝试过“Thisworkbook.Range”和“Range”本身,但没有取得太大成功。

如有任何帮助,我们将不胜感激。

我已经尝试过“Thisworkbook.Range”和“Range”本身,但没有取得太大成功。

范围和名称并不完全相同,但是您可以使用 RefersToRange 使它们变得相同。

试试这个:

If Evaluate("Table1RowCount") > Evaluate("Table1LastRowFixed") Then
    
    ThisWorkbook.Names("Table1LastRowFixed").RefersToRange.Value = Evaluate("Table1RowCount")

End If

excel vba macros named-ranges
1个回答
0
投票

范围和名称并不完全相同,但是您可以使用 RefersToRange 使它们变得相同。

试试这个:

If Evaluate("Table1RowCount") > Evaluate("Table1LastRowFixed") Then
    
    ThisWorkbook.Names("Table1LastRowFixed").RefersToRange.Value = Evaluate("Table1RowCount")

End If
© www.soinside.com 2019 - 2024. All rights reserved.