在VBBA中的每个字符以不同的颜色在Excel中

我正在寻找一种方法来显示使用VBA不同颜色的用户 体内的TextBox中的每个字母。 例如第一个字符红色,第二个蓝色,第三个…。 有没有办法做到这一点?

这是不可能使用TextBox控件
如果您使用的是Excel 2010或更高版本,则可以使用InkEdit Control
这是“ 工具”>“其他控件”(Excel VBE)下的附加控件

在这里输入图像说明

一旦你添加了它,它就可以在你的工具箱中看到,如下所示。

在这里输入图像说明

然后,您可以将其用作UserForm中的另一个控件
要详细了解可以使用InkEdit控件执行的操作 ,请查看MSDN 。
顺便说一句,这里是一个示例代码,它的颜色input(每个字符)根据您的位置键入。

Private Sub InkEdit1_Change() Dim i As Long If Me.InkEdit1.Text <> "" Then For i = 1 To Len(Me.InkEdit1.Text) Me.InkEdit1.SelStart = i - 1 '~~> identifies the start of selection Me.InkEdit1.SelLength = 1 '~~> identifies the length of selection Select Case i Case 1: Me.InkEdit1.SelColor = RGB(255, 0, 0) '~~> colors 1st char Red Case 2: Me.InkEdit1.SelColor = RGB(0, 255, 0) '~~> colors 2nd char Green Case 3: Me.InkEdit1.SelColor = RGB(0, 0, 255) '~~> colors 3rd char Blue Case 4: Me.InkEdit1.SelColor = RGB(255, 255, 0) '~~> colors 4th char Yellow Case 5: Me.InkEdit1.SelColor = RGB(255, 0, 255) '~~> colors 5th char Indigo End Select Me.InkEdit1.SelStart = i '~~> this puts the cursor to end Next End If End Sub 

对于上面的示例,我将在控件中input的字符数限制为5。
InkEdit都接受RGB颜色索引,但我很喜欢使用RGB
你的问题是缺乏细节,所以我不能提供更多; 只是希望这可以帮助你一点。
如果有的话,你的Excel版本不是2010年,我认为对于较低版本也有相应的控制。

结果:
在这里输入图像说明