弗尔布雷斯 弗尔布雷斯
关注数: 15 粉丝数: 181 发帖数: 2,761 关注贴吧数: 10
求助下关于excel中Inputbox输入内容时显示为*的问题 求助下各位大侠,我需要实现在Inputbox中输入内容时,显示为*号,就像输入密码时的那种效果。我从网上找了个语句可以实现。但是我最近帮别人写了个东西,也用到了让Inputbox中输入的内容显示为*的语句,但是发现没有作用,并且程序好像一直在循环运行,不知道是为什么,麻烦各位大侠帮看下。 我把代码写在了 Private Sub Worksheet_SelectionChange(ByVal Target As Range) 下,相应的效果应该是,在出来的Inputbox里输入文本时,显示为*号,但现在显示的是文本本身,并且好像程序在不断的运行?麻烦各位大侠帮看下是什么问题。这个是我帮别人写的,他那里是繁体版的Excel,出现了这个问题,我这边就没问题,不知道是为什么。 以下是我在网上找到的语句,写在了 模块 里 Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Public Declare Function timeSetEvent Lib "winmm.dll" (ByVal uDelay As Long, ByVal uResolution As Long, ByVal lpFunction As Long, ByVal dwUser As Long, ByVal uFlags As Long) As Long Public Declare Function timeKillEvent Lib "winmm.dll" (ByVal uID As Long) As Long Public Declare Function GetTickCount Lib "kernel32" () As Long Public Const EM_SETPASSWORDCHAR = &HCC Public lTimeID As Long Sub TimeProc(ByVal uID As Long, ByVal uMsg As Long, ByVal dwUser As Long, _ ByVal dw1 As Long, ByVal dw2 As Long) hwd = FindWindow("#32770", "password") If hwd <> 0 Then hwd = FindWindowEx(hwd, 0, "edit", vbNullString) SendMessage hwd, EM_SETPASSWORDCHAR, 42, 0 timeKillEvent lTimeID End If End Sub 下边是我写在 Worksheet_SelectionChange 中的语句 Private Sub Worksheet_SelectionChange(ByVal Target As Range) lTimeID = timeSetEvent(10, 0, AddressOf TimeProc, 1, 1) Password = InputBox("叫块盏絏", "叫羛╰恨瞶") End Sub
首页 1 2 3 4 下一页