Vba 在excel中绘制字母
是否有一个插件可以帮助在excel中生成字母(a-Z),如下所示?或者我们可以编写某种VBA脚本来实现这一点Vba 在excel中绘制字母,vba,excel,ms-office,Vba,Excel,Ms Office,是否有一个插件可以帮助在excel中生成字母(a-Z),如下所示?或者我们可以编写某种VBA脚本来实现这一点 Stackoverflow不是我的代码服务。无论如何,这个任务看起来很有趣,我决定编写一些代码: Option Explicit Public Sub WriteLetterA() Dim varLetterA(8) As Variant Dim lngColCounter As Long Dim lngRowCounter
Stackoverflow不是我的代码服务。无论如何,这个任务看起来很有趣,我决定编写一些代码:
Option Explicit
Public Sub WriteLetterA()
Dim varLetterA(8) As Variant
Dim lngColCounter As Long
Dim lngRowCounter As Long
Dim blnReverse As Boolean
Dim rngCell As Range
blnReverse = True
varLetterA(0) = Array(1, 1, 1, 0, 0, 1, 1, 1)
varLetterA(1) = Array(1, 0, 0, 0, 0, 0, 0, 1)
varLetterA(2) = Array(1, 0, 0, 1, 1, 0, 0, 1)
varLetterA(3) = Array(1, 0, 0, 1, 1, 0, 0, 1)
varLetterA(4) = Array(0, 0, 0, 1, 1, 0, 0, 0)
varLetterA(5) = Array(0, 0, 0, 0, 0, 0, 0, 0)
varLetterA(6) = Array(0, 0, 0, 0, 0, 0, 0, 0)
varLetterA(7) = Array(0, 0, 1, 1, 1, 1, 0, 0)
varLetterA(8) = Array(0, 0, 1, 1, 1, 1, 0, 0)
Cells(1, 1).Select
For lngRowCounter = 0 To UBound(varLetterA)
For lngColCounter = 0 To UBound(varLetterA(lngRowCounter))
Set rngCell = Cells(lngRowCounter + 1, lngColCounter + 1)
If varLetterA(lngRowCounter)(lngColCounter) Then
rngCell.Interior.Color = IIf(blnReverse, vbBlack, vbWhite)
Else
rngCell.Interior.Color = IIf(blnReverse, vbWhite, vbBlack)
End If
Next lngColCounter
Next lngRowCounter
End Sub
' Points for improvement - varLetterA in a separate class
' Refer to the sheet, do not assume it
' Pass the first cell as a reference
这就是你得到的:
blnReverse=False
blnReverse=True
看看需要改进的地方——如果您决定构建字母表的其余部分,它们可能会很有用。祝你好运。你想要什么还不完全清楚。你似乎想通过给细胞着色来获得某种文字艺术。据我所知,没有任何插件可以做到这一点(而且,请求外部资源在堆栈溢出问题上是离题的)。很明显,您可以编写一个VBA宏来实现这一点。取决于你想做什么,这并不特别困难。re:“我们可以写一些VBA脚本来完成这项工作吗”-嗯,我可以;我不确定你的情况,因为你的问题中没有代码。最简单的方法是找到一种低分辨率LED显示器中使用的开源点阵字体。您应该能够找到一个文件,例如,包含字母表上每个字母的16x12 0-1值矩阵。一旦你把它们读入VBA,就把它们推到Excel范围(可能是文字0和1),让条件格式来完成其余的工作。“Stackoverflow不是一个适合我的代码服务。不管怎样,这项任务看起来很有趣,我已经决定为此编写一些代码”——我不止一次有同样的感觉。
blnReverse
参数是个好主意+1 hanks@JohnColeman-出现了blnReverse
,因为我忘记了varletta
中的0
和1
是什么,我想这样会更容易:)