Excel - 是否可以使字符在某个范围内显示为“*”?

时间:2016-05-23 20:08:10

标签: excel vba excel-vba

是否有人知道是否可以将输入Excel范围的文本显示为“*******”?我希望用户能够在一个范围内输入密码进行登录(没有Userform),但是当用户打字时,我希望字符为星号(*),以便无法看到。

我将使用Userform作为最后的手段,但我想在没有Userform的情况下尝试这样做。

任何人都可以提供任何帮助吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

在没有用户表单的情况下执行此操作并不理想,因为每次表单上的某些内容发生更改时,此代码都会运行。 strPassword的尺寸标注为全局变量,必须在代码的顶部变暗。

Dim strPassword As String

Private Sub Worksheet_Change(ByVal Target As Range)
    If Sheet1.Cells(1, 1).Value <> "********" Then
        strPassword = Sheet1.Cells(1, 1).Value
        Sheet1.Cells(1, 1).Value = "********"
    End If
    MsgBox strPassword
End Sub

如果您的工作表上有空间,则将此代码添加到将读取密码并替换单元格值的按钮(即Button1_Click事件)将阻止代码在每次更改时运行。

答案 1 :(得分:1)

另一种可能性是在工作表中使用文本框ActiveX控件,并将PasswordChar属性设置为例如*。然后文本框中输入的文本用户将显示为*。可以格式化文本框,使其与包含单元格具有相同的大小,并在包含单元格大小更改时进行大小调整等。Linked-cell可以使用,因此可以从此单元格中读取密码值。

enter image description here