gpt4 book ai didi

vba - 获取枚举的等效文本

转载 作者:行者123 更新时间:2023-12-03 00:44:39 24 4
gpt4 key购买 nike

我正在尝试在工作表中创建一些简单的表格,这些表格给出了常见枚举的等效数字,例如:

enter image description here

此示例适用于 Border 枚举变量。这个素材可以在MSDN里闲逛找到。 ,但我经常需要在不在线时工作,并且无法获得此类“帮助”。

我目前正在用两个单独的循环填充我的小表:

Sub trythisB()
Dim i As Long
i = 1
For Each a In Array(xlInsideHorizontal, xlInsideVertical, xlEdgeLeft, xlEdgeRight, xlEdgeBottom, xlEdgeTop)
Cells(i, 2) = a
i = i + 1
Next a
End Sub

Sub trythisA()
Dim i As Long
i = 1
For Each a In Array("xlInsideHorizontal", "xlInsideVertical", "xlEdgeLeft", "xlEdgeRight", "xlEdgeBottom", "xlEdgeTop")
Cells(i, 1) = a
i = i + 1
Next a
End Sub

我真的很想避免保留两个单独的数组;一个用于文本字符串,另一个用于枚举。

有没有办法从文本字符串中获取枚举,或者将枚举转换为文本字符串?

如有任何建议,我们将不胜感激。

最佳答案

我不认为您需要以编程方式生成这样的列表才能创建它。 Microsoft 在 MSDN 中提供了所有这些的定义:

https://msdn.microsoft.com/en-us/vba/excel-vba/articles/constants-enumeration-excel

您可以从那里下载它并将其粘贴到您的电子表格中。您甚至可以通过网络查询使其动态化,这样您就可以及时了解任何更改。这是一个执行此操作的宏:

Sub GetEnumerationDefinitions()

ActiveWorkbook.Queries.Add Name:="Enumerations", Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Source = Web.Page(Web.Contents(""https://msdn.microsoft.com/en-us/vba/excel-vba/articles/constants-enumeration-excel""))," & Chr(13) & "" & Chr(10) & " Data0 = Source{0}[Data]," & Chr(13) & "" & Chr(10) & " #""Changed Type"" = Table.TransformColumnTypes(Data0,{{""Name"", type text}, {""Value"", Int64.Type}, {""Description"", type text}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " #""Changed Type"""
ActiveWorkbook.Worksheets.Add
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
"OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=""Enumerations"";Extended Properties=""""" _
, Destination:=Range("$A$1")).QueryTable
.CommandType = xlCmdSql
.CommandText = Array("SELECT * FROM [Enumerations]")
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "Table_0"
.Refresh BackgroundQuery:=False
End With
End Sub

关于vba - 获取枚举的等效文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48449287/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com