vba 新建窗体修改窗体

查看: 569|回复: 1
有窗体录入数据后如何修改?
阅读权限20
在线时间 小时
新年快乐!
已经做了一个窗体向Excel中录入数据,但如何利用窗体进行修改已经录入的数据?我在窗体上加了一个导入记录的控件,想法是点击后,用户输入唯一的序号,然后定位到序号所在的记录行,再将记录中的数据导入到窗体中进行修改,最后点击提交保存到Excel中。请教代码要如何写。
另外一个问题是控件中能否插入链接?
(84.58 KB, 下载次数: 22)
16:22 上传
点击文件名下载附件
阅读权限20
在线时间 小时
Private Sub CommandButton2_Click()
在这里定义循环变量,如果找到序列号的值,就利用一个变量记录序列号出现的行号,然后装入动态数组中,再把动态数组中指定的行号与列标号赋值到窗体的各个textbox中即可
最新热点 /1
开学季,当当网ExcelHome图书一律5折,即日起至3月14日,莫失良机!
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师TA的最新馆藏下次自动登录
现在的位置:
VBA 窗体之去除窗体标题栏
注意: 本文适用于 Excel 2000 及其以后版本(包含 64 位 Office )
在 VBA 中当我们有时需要显示一个无标题栏的窗体作为启动的界面,但是 VBA 的窗体不可以直接设置这样的属性,只有通过代码来实现
附件下载:
操作如下:
在Excel 的VBE窗口中插入一个用户窗体,将其命名为 DelTitleForm。在用户窗体中添加两个按钮,将其分别更名为 和BtCancel。然后再添加一个模块。在窗体和模块中添加后面所列代码。
在工作薄中的任意工作表中添加一窗体按钮控件,将指定其设置宏
为ShowForm。其供示范之用
具体代码:
"mdNoTitle" 模块代码
Sub ShowForm()
DelTitleForm.Show
"DelTitleForm" 窗体代码
'********************************
'---此模块演示怎样删除窗体标题栏---
'********************************
'以下声明API函数
#If Win64 Then '64位
'取得窗体样式位
Private Declare PtrSafe Function GetWindowLong _
Lib &user32& _
Alias &GetWindowLongPtrA& ( _
ByVal Hwnd As LongPtr, _
ByVal nIndex As Long) _
As LongPtr
Private Declare PtrSafe Function FindWindow _
Lib &user32& _
Alias &FindWindowA& ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) _
As LongPtr
'设置窗体样式位
Private Declare PtrSafe Function SetWindowLong _
Lib &user32& _
Alias &SetWindowLongPtrA& ( _
ByVal Hwnd As LongPtr, _
ByVal nIndex As Long, _
ByVal dwNewLong As LongPtr) _
As LongPtr
'绘制窗体标题栏
Private Declare PtrSafe Function DrawMenuBar _
Lib &user32& ( _
ByVal Hwnd As LongPtr) _
'视情况向和窗体发送消息
Private Declare PtrSafe Function SendMessage _
Lib &user32& _
Alias &SendMessageA& ( _
ByVal Hwnd As LongPtr, _
ByVal wMsg As Long, _
ByVal wParam As LongPtr, _
lParam As Any) _
As LongPtr
Private Declare PtrSafe Function ReleaseCapture _
Lib &user32& () _
'取得窗体样式位
Private Declare Function GetWindowLong _
Lib &user32& _
Alias &GetWindowLongA& ( _
ByVal hwnd As Long, _
ByVal nIndex As Long) _
Private Declare Function FindWindow _
Lib &user32& _
Alias &FindWindowA& ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) _
'设置窗体样式位
Private Declare Function SetWindowLong _
Lib &user32& _
Alias &SetWindowLongA& ( _
ByVal hwnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) _
'绘制窗体标题栏
Private Declare Function DrawMenuBar _
Lib &user32& ( _
ByVal hwnd As Long) _
'视情况向窗体发送消息
Private Declare Function SendMessage _
Lib &user32& _
Alias &SendMessageA& ( _
ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any) _
'释放鼠标控制
Private Declare Function ReleaseCapture _
Lib &user32& () _
#If Win64 Then '64位
Private hWndForm As LongPtr
Private FIstype As LongPtr
Private hWndForm As Long
Private FIstype As Long
'以下定义常数和变量
Private Const GWL_STYLE = (-16) '窗口样式
Private Const WS_CAPTION = &HC00000
Private Const WM_SYSCOMMAND = &H112
Private Const SC_MOVE_MOUSE = &HF012&
'---关闭按钮---
Private Sub BtCancel_Click()
'---窗体双击---
Private Sub UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
'---窗体初始化---
Private Sub UserForm_Initialize()
On Error Resume Next
'查找窗体句柄
hWndForm = FindWindow(&ThunderDFrame&, Me.Caption)
'取得窗体样式
FIstype = GetWindowLong(hWndForm, GWL_STYLE)
'窗体样式:原样式无标题
FIstype = FIstype And Not WS_CAPTION
'重设窗体样式
SetWindowLong hWndForm, GWL_STYLE, FIstype
'重绘窗体标题栏
DrawMenuBar hWndForm
'---鼠标按下---
Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, _
ByVal X As Single, ByVal Y As Single)
ReleaseCapture
'向窗体发送消息
SendMessage hWndForm, WM_SYSCOMMAND, SC_MOVE_MOUSE, 0
【上篇】【下篇】
您可能还会对这些文章感兴趣!
您必须才能发表留言!VBA修改过窗体控件信息后输入中文就成为乱码,求解决方法_excel吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:138,579贴子:
VBA修改过窗体控件信息后输入中文就成为乱码,求解决方法收藏
如图所示,中文显示成为乱码,但是把这段文字复制到TXT,word都可以正常显示。主要操作原因可能是我通过修改VBA窗体控件代码后出现的,不知道是否能够解决,谢谢!
网线水晶头
对不起党和人民,自己已解决,不小心把编程字体设成阿拉伯文了,
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或

我要回帖

更多关于 vba 新建窗体 的文章

 

随机推荐