一、
期望實現的目標是:填寫單元格值時,自動在輸入的值前增加某字符
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 22 And Target.Count = 1 Then
Cells(Target.Row, Target.Column).Value = Workbooks("loginin.xls").Sheets("Users").Cells(1, 1) & ":" & Target.Text
End If
...
問題是:賦值後重新觸發了Change事件,使得進入了死循環,請教應該怎麼處理?二、
如何取得其它excel(不是同一個xls文件)的表單信息
我是這樣寫的
If Workbooks("loginin.xls").Windows("UserForm1").ComboBox1.Text <> " Then
End If其中UserForm1表單是隱藏的,
提示錯誤,請教該如何處理?
謝謝
期望實現的目標是:填寫單元格值時,自動在輸入的值前增加某字符
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 22 And Target.Count = 1 Then
Cells(Target.Row, Target.Column).Value = Workbooks("loginin.xls").Sheets("Users").Cells(1, 1) & ":" & Target.Text
End If
...
問題是:賦值後重新觸發了Change事件,使得進入了死循環,請教應該怎麼處理?二、
如何取得其它excel(不是同一個xls文件)的表單信息
我是這樣寫的
If Workbooks("loginin.xls").Windows("UserForm1").ComboBox1.Text <> " Then
End If其中UserForm1表單是隱藏的,
提示錯誤,請教該如何處理?
謝謝
解决方案 »
- 求个简单的修改jpg/png图片的色彩为8级灰度(当图片为彩色时自动不修改,仅当图片为黑白时修改)源码,多谢!!
- VB6用Lotus Notes发信的问题
- 怎样把Date类型转化为double类型 转化后 不会丢失精度,就是再转回Date后毫秒时间还在
- [整理后再开一贴]一个递归算法,错在哪里,请高手进来指点,谢谢!
- 判断一个文本当前是否被打开,怎么样写代码可以实现
- 很怪的现象
- ■■■■请问:vsflexgrid 7 的BindToArray方法怎么用?用棒定数组的方法填充数据跟AddItem方法哪个快
- 什么是存储过程和触发器?请指点!
- 稍难的进度条问题?
- 在VB中如何对系统文件MSDOS.SYS进行编辑?
- VB 从文件里提取部分数据
- 如何在不创建窗体的情况下产生工程?
static isMyChange as boolean
if isMyChange then exit sub
isMyChange = true
If Target.Column = 22 And Target.Count = 1 Then
Cells(Target.Row, Target.Column).Value = Workbooks("loginin.xls").Sheets("Users").Cells(1, 1) & ":" & Target.Text
End If
isMychange = false
end sub
Private Sub Worksheet_Change(ByVal T As Range)
On Error Resume Next
If T.Column = 22 And T.Count = 1 Then
Application.EnableEvents = False
Cells(T.Row, T.Column).Value = Workbooks("loginin.xls").Sheets("Users").Cells(1, 1) & ":" & T
Application.EnableEvents = True
End If
End Sub
第二个问题需要附件才能了解具体情况
第二個問題如何處理。說簡單點就是a.xls如何訪問b.xls的UserForm1上的TextBox1。
1)首先在 “Visual Basic 编辑器”的“工程资源管理器”中,找到 loginin.xls,它默认的工程名是 VBAProject,更改一下(比如叫 VBAProjectLogin)
2)在 VBAProjectLogin 下的 ThisWorkbook 下添加代码
Option ExplicitPublic Property Get UserForm1() As UserForm
Set UserForm1 = VBAProjectLogin.UserForm1
End Property
3)到要访问它的其它 xls 工程中,在菜单“工具\引用...”中添加对 VBAProjectLogin 的引用
4)就可以在代码中这样调用了
If VBAProjectLogin.ThisWorkbook.UserForm1.ComboBox1.Text <> " Then
End If
一个参考:
b.xls中插入模块,在其中加入一个过程:
Sub tt()
MsgBox UserForm1.ComboBox1.Text
End Sub在a.xls中随便写一个过程如:
Sub yy()
Run "b!tt"
End Subb.xls需要打开,没有打开的话使用一句命令打开。或者切换一下当前目录到b的所在文件夹,如:
ChDir "D:\Backup\我的文档\新建文件夹"
Run "b!tt"