Excel VBA:有没有一种更整洁的方法可以修改工作簿中的值.名称比这个更整洁



我将数值存储为Workbook names。要修改内容,我目前正在这样做

Sub Macro1()
Dim wb As Workbook: Set wb = ActiveWorkbook
Dim s As String: s = "Sheet_Row_Height"
Dim i As Integer
Dim node, nn
nn = wb.Names.Item(s).Value
i = Val(Replace(nn, "=", ""))
i = i + 1
wb.Names.Item(s).Delete
Set node = wb.Names.Add(Name:=s, RefersTo:= i)
End Sub

我举个例子,有没有一种更整洁的方法可以做到这一点?对我来说,这似乎是很多不必要的步骤?我试图修改Value,但没有成功,所以我像上面的一样做了

您只能通过一个名称的Value属性获得该名称的值,并且您必须删除=,并且在编写它时必须添加它。

但是,您可以稍微简化代码,不需要删除或重新创建name对象。而且,顺便说明一下,不需要编写Names.Item(s),可以使用Names(s)作为item-Collection是所谓的默认属性

如果你确定名称存在并且有一个数值,你可以使用这样的东西:

Dim n As Name
Set n = wb.Names(s)
n.Value = "=" & Val(Mid(n.Value, 2)) + 1

最新更新