Excel 使用VBA创建具有已定义变量的命名单元格
我试图通过VBA使用名称管理器命名公式中引用的单元格。我让VBA在图纸上找到正确的单元格(其位置会有所不同),并将其定义为变量:Excel 使用VBA创建具有已定义变量的命名单元格,excel,vba,Excel,Vba,我试图通过VBA使用名称管理器命名公式中引用的单元格。我让VBA在图纸上找到正确的单元格(其位置会有所不同),并将其定义为变量: s3form = Range(prog_beg3).Offset(0, 3) 然后,我使用名称管理器功能命名单元格,使单元格的地址为's3form',但行是可变的。因此,如果's3form=B5',则命名单元的地址将为'$B5' ActiveWorkbook.Names.Add Name:=s3_form, RefersTo:=s3form 但是,该公式不能将s3
s3form = Range(prog_beg3).Offset(0, 3)
然后,我使用名称管理器功能命名单元格,使单元格的地址为's3form',但行是可变的。因此,如果's3form=B5',则命名单元的地址将为'$B5'
ActiveWorkbook.Names.Add Name:=s3_form, RefersTo:=s3form
但是,该公式不能将s3form识别为单元格。它似乎只在's3form=$B$5'时识别单元格
有人有可能的解决办法吗
谢谢这是如何做到的:
activeworkbook.Names.Add "Testing",[s3form]
现在“测试”将添加到工作簿中的名称中,参考s3form。关于您的代码,如果您在s3form
周围使用[]
,它可能会起作用
通常,这些[]
是引用命名范围的好方法。您甚至可以引用这样的地址-[A1]
这是如何做到的:
activeworkbook.Names.Add "Testing",[s3form]
现在“测试”将添加到工作簿中的名称中,参考s3form。关于您的代码,如果您在s3form
周围使用[]
,它可能会起作用
通常,这些
[]
是引用命名范围的好方法。您甚至可以引用这样的地址-[A1]
使用Set
:Set s3form=Range(prog_beg3)。偏移量(0,3)
当然s3form
必须声明为一个范围。然后,当我尝试ActiveWorkbook.Names.Add Name:=sform,referesto:=s3form.Address时,引用:=s3form.Address@ScottCraner。我需要运行时错误'424'对象请显示更多代码。变量是如何声明和赋值的?Range(prog_end2).Offset(4,0).选择prog_beg3=Selection.Address(RowAbsolute:=False,ColumnAbsolute:=False)
s3form=Sheets(“testmode”).Range(prog_beg3).Offset(0,3).Address(RowAbsolute:=False,ColumnAbsolute:=True)
ActiveWorkbook.Names.Add Name:=sform,参考:=s3form.Address
使用Set
:Set s3form=Range(prog_beg3)。偏移量(0,3)
当然s3form
必须声明为一个范围。然后,当我尝试ActiveWorkbook.Names.Add Name:=sform,referesto:=s3form.Address时,引用:=s3form.Address@ScottCraner。我需要运行时错误'424'对象请显示更多代码。变量是如何声明和赋值的?Range(prog_end2).Offset(4,0).选择prog_beg3=Selection.Address(RowAbsolute:=False,ColumnAbsolute:=False)
s3form=Sheets(“testmode”).Range(prog_beg3).Offset(0,3).Address(RowAbsolute:=False,ColumnAbsolute:=True)
ActiveWorkbook.Names.Add Name:=sform,referesto:=s3form.Address
我尝试了这个方法,但公式仍然无法识别单元格。在名称管理器中,它表示名称引用$I31,这是正确的,但表示值也是$I31。可能该值需要为空才能让公式识别它?@A.Nelson-我缺少一些信息,但在将s3form
声明为命名范围后,尝试以下->操作,以便用一些值填充它,如下所示:[s3form]=range(prog_beg3).Offset(0,3)
我尝试了这个方法,但公式仍然无法识别单元格。在名称管理器中,它表示名称引用$I31,这是正确的,但表示值也是$I31。也许该值需要为空才能被公式识别?@A.Nelson-我缺少一些信息,但在将s3form
声明为命名范围后,请尝试以下->将其填充为某个值,如下所示:[s3form]=range(prog_beg3).Offset(0,3)