工具 - Office - VBA - 窗口启动后还可以操作工作表
白玉_昼下がりの池に集う
VBA 窗口启动后还可以操作工作表
问题情景
使用宏时,通过窗口输入,用鼠标在工作表内选中区域,进行匹配字符的上色问题,窗口开启时,鼠标不能操作工作表。
解决方法
窗体启动时,默认为窗体模式,此时不能操作工作表,只有结束窗体,才能操作。因此,不要直接启动窗体,使用宏内模块来开启窗口(以无窗体模式启动窗口,类似弹窗的效果和概念,此时窗口启动后还可以操作工作表):
Sub a()
' 有窗体模式
'UserForm1.Show (1)
' 无窗体模式
UserForm1.Show (0)
End Sub
单元格内部分字符更改字体颜色突出显示
新建一个窗体,增加一个按钮,并增加输入框和标签,标签作为回显,添加如下代码:
Private Sub CommandButton1_Click()
getStr = TextBox1.Text
Label1.Caption = getStr
End Sub
在工作表区域内增加:
Public getStr As String
Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rng As Range, i As Integer
Dim T As String
Dim C As Integer
T = UserForm1.TextBox1.Text
If T = "" Then
Else
For Each rng In Selection
C = 3 'C是颜色,通过设定不同的值,代表对应的颜色
i = 1
Do While InStr(i, rng, T) > 0
rng.Characters(InStr(i, rng, T), Len(T)).Font.ColorIndex = C
i = InStr(i, rng, T) + 1
Loop
Next
End If
End Sub
其他
同问题参考连接:
https://blog.csdn.net/Chiyuen/article/details/129304433
https://answers.microsoft.com/zh-hans/msoffice/forum/all/%E5%9C%A8vba%E4%B8%AD%E8%BF%90%E8%A1%8C%E7%94%A8/6e9672fe-e690-4718-a8b2-eee50941db6a
https://zhuanlan.zhihu.com/p/408515274