Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 在excel中绘制字母_Vba_Excel_Ms Office - Fatal编程技术网

Vba 在excel中绘制字母

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

是否有一个插件可以帮助在excel中生成字母(a-Z),如下所示?或者我们可以编写某种VBA脚本来实现这一点


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
是什么,我想这样会更容易:)