幸运的是我找到了这个网站: https://www.linuxtut.com/en/150745ae0cc17cb5c866/
(定义了很多线型
Excel 枚举 XlLineStyle)
(xlContinuous = 1
xlDashDot = 4
xlDashDotDot = 5
xlSlantDashDot = 13
xlDash = -4115
xldot = -4118
xlDouble = -4119
xlLineStyleNone = -4142)
我用 try and except +/- 100.000 次设置行运行,因为我认为任何地方都应该是这个[索引]号,以便将这条线也放入我的图片中,但它们不是 - 为什么不呢?
如何设置这条线?
为什么有些线索引处于如此巨大的负值范围内,而不仅仅是 1、2、3...?
我怎样才能发现像“数字”这样的东西来做这样的事情?
为什么这是可能的,要在特定位置发送应用程序数据,我想更深入一点,我在哪里可以了解更多相关信息?
(1) 您无法在线条样式枚举中找到虚线介质,因为没有。绘制为边框的线是
lineStyle
和 Weight
的组合。线条样式为 xlDash,表中值 03 的粗细为 xlThin
,值 08 的粗细为 xlMedium
。
(2) 要了解如何在 VBA 中设置类似的内容,请使用宏记录器,它将显示在设置边框时设置了 lineStyle、Weight(和颜色)。
(3) 有很多页面描述了所有常量,例如查看评论中链接到的@FaneDuru。它们也可以在 Microsoft 本身找到:https://learn.microsoft.com/en-us/office/vba/api/excel.xllinestyle 和 https://learn.microsoft.com/en-us/办公室/vba/api/excel.xlborderweight。似乎有人在 linuxTut 页面上将它们翻译为 Python 常量。
(4) 不要问为什么枚举不是连续值。我认为特别是带有负数的常数不仅仅有一个目的。只是永远不要直接使用这些值,始终使用定义的常量。
(5) 您可以假设没有定义常量的数值可以工作,但结果是不可预测的。不太可能有没有常量的值会导致“新”的东西(例如不同的边框样式)。
如下表所示,并非所有组合都会给出不同的边框。将粗细设置为
xlHairline
将忽略线条样式。将其设置为 xlThick
也会忽略 lineStyle,但 xlDouble
除外。另一方面,当重量不是 xlDouble
时,xlThick
将被忽略。
Sub border()
With ThisWorkbook.Sheets(1)
With .Range("A1:J18")
.Clear
.Interior.Color = vbWhite
End With
Dim lStyles(), lWeights(), lStyleNames(), lWeightNames
lStyles() = Array(xlContinuous, xlDash, xlDashDot, xlDashDotDot, xlDot, xlDouble, xlLineStyleNone, xlSlantDashDot)
lStyleNames() = Array("xlContinuous", "xlDash", "xlDashDot", "xlDashDotDot", "xlDot", "xlDouble", "xlLineStyleNone", "xlSlantDashDot")
lWeights = Array(xlHairline, xlThin, xlMedium, xlThick)
lWeightNames = Array("xlHairline", "xlThin", "xlMedium", "xlThick")
Dim x As Long, y As Long
For x = LBound(lStyles) To UBound(lStyles)
Dim row As Long
row = x * 2 + 3
.Cells(row, 1) = lStyleNames(x) & vbLf & "(" & lStyles(x) & ")"
For y = LBound(lWeights) To UBound(lWeights)
Dim col As Long
col = y * 2 + 3
If x = 1 Then .Cells(1, col) = lWeightNames(y) & vbLf & "(" & lWeights(y) & ")"
With .Cells(row, col).Borders
.LineStyle = lStyles(x)
.Weight = lWeights(y)
End With
Next
Next
End With
End Sub