EXCEL VBA中程序代码问题,请大侠帮忙。
完整代码如下:PrivateSubQuerry_Click()Worksheets("在职人员").SelectDimiAsIntegeri=0DimnumAsLongD...
完整代码如下:Private Sub Querry_Click()Worksheets("在职人员").SelectDim i As Integeri = 0Dim num As LongDim str As Stringnum = Worksheets("在职人员").Range("B65536").End(xlUp).RowActiveWorkbook.Names("DataArea").RefersToR1C1 = " =在职人员!R3C2:R" & num & "C2"str = InputBox("请输入需要查询的姓名")Range("cj3").FormulaR1C1 = "=countif(DataArea,""" & str & """)"If Range("cj3").Value > 1 ThenDim MyArray(6, 10) As String MyArray(0, 0) = "员工编号" MyArray(1, 0) = "姓名" MyArray(2, 0) = "性别" MyArray(3, 0) = "职务" MyArray(4, 0) = "部门" MyArray(5, 0) = "联系电话" UserForm1.Height = 387 w_UserList.Visible = True With Worksheets(1).Range("DataArea") Set c = .Find(str, LookIn:=xlValues) If Not c Is Nothing Then firstAddress = c.Address Do i = i + 1 MyArray(0, i) = Cells(c.Row, 1) MyArray(1, i) = Cells(c.Row, 2) MyArray(2, i) = Cells(c.Row, 3) MyArray(3, i) = Cells(c.Row, 26) MyArray(4, i) = Cells(c.Row, 25) MyArray(5, i) = Cells(c.Row, 15) Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address <> firstAddress End If End With w_UserList.Column() = MyArray Exit Sub End If With Worksheets(1).Range("DataArea") Set c = .Find(str, LookIn:=xlValues) If Not c Is Nothing Then firstAddress = c.Address Do w_b_Address.Text = Cells(c.Row13) w_b_BirthDay.Text = Cells(c.Row5) w_b_Stu.Text = Cells(c.Row6) w_b_Tech.Text = Cells(c.Row7) w_b_School.Text = Cells(c.Row9) w_b_Mobile.Text = Cells(c.Row) w_b_ID.Text = Cells(c.Row) w_b_WorkerName.Text = Cells(c.Row) w_b_FName.Text = Cells(c.Row) w_b_FWork.Text = Cells(c.Row) w_b_HouseID.Text = Cells(c.Row) w_b_NowAddress.Text = Cells(B.Row) w_b_HomeTelephone.Text = Cells(B.Row) w_b_CarID.Text = Cells(c.Row) w_b_Email.Text = Cells(c.Row) w_b_Image.Picture = LoadPicture(ThisWorkbook.Path & "\PersonImage\" & Cells(c.Row, 6)) Set c = .FindNext(c) Loop While Not c Is Nothing And B.Address <> firstAddress End If End With End Sub
我有几个疑问,里面的cj3是什么?c.Row代表什么,能换成b.Row吗?能把Set c等中的c换成b吗?还有 With Worksheets(1).Range("DataArea")也报过错误,也不知道错在哪里?MyArray(0, 0) = "员工编号" MyArray(1, 0) = "姓名"这个当中的行列和C语言中的相反?分别是第一行第一列和第二列第一行?
怎样实现这个人事系统中的性别和婚姻状况,学历等复选框内容的显示代码?文本框的用 w_b_ID.Text = Cells(c.Row),那这种复选框用什么?这个查询功能代码有太多问题了,请大侠帮助啊。 展开
我有几个疑问,里面的cj3是什么?c.Row代表什么,能换成b.Row吗?能把Set c等中的c换成b吗?还有 With Worksheets(1).Range("DataArea")也报过错误,也不知道错在哪里?MyArray(0, 0) = "员工编号" MyArray(1, 0) = "姓名"这个当中的行列和C语言中的相反?分别是第一行第一列和第二列第一行?
怎样实现这个人事系统中的性别和婚姻状况,学历等复选框内容的显示代码?文本框的用 w_b_ID.Text = Cells(c.Row),那这种复选框用什么?这个查询功能代码有太多问题了,请大侠帮助啊。 展开
展开全部
从代码本身来看,黄色代码没有错误,唯一可疑的地方是定义的字串变量 str 与系统保留函数重名,但应该也不影响运行。
cj3是什么?:CJ3代表CJ3单元格,这里可能是临时借用CJ3单元格,查找列表中是否包含 str。
c.Row代表什么,能换成b.Row吗?能把Set c等中的c换成b吗?:c是指定的一个Range对象,代表了一个指定的单元格区域,c继承了range对象的所有属性、方法,c.row代表单元格对象的行号。因此,只要在前面用dim声明了b变量为range类,并用set将b指定为range对象,就可以将c换成b
行列和C语言中的相反?:VBA中,单元格坐标引用是(row, column)格式的,行在前,列在后
cj3是什么?:CJ3代表CJ3单元格,这里可能是临时借用CJ3单元格,查找列表中是否包含 str。
c.Row代表什么,能换成b.Row吗?能把Set c等中的c换成b吗?:c是指定的一个Range对象,代表了一个指定的单元格区域,c继承了range对象的所有属性、方法,c.row代表单元格对象的行号。因此,只要在前面用dim声明了b变量为range类,并用set将b指定为range对象,就可以将c换成b
行列和C语言中的相反?:VBA中,单元格坐标引用是(row, column)格式的,行在前,列在后
展开全部
CJ3是指CJ列,第3行。
c.row
是指变量C代表的单元格的行号
c.row
是指变量C代表的单元格的行号
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
range唯一不接受的写法,就是你那样
可以写成range("cj3:cj3"),我也不明白盖茨为啥这样设计
可以写成range("cj3:cj3"),我也不明白盖茨为啥这样设计
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
CJ3是:CJ列第三行
c是创建的find方法的对象,返回的是查找到的值,如果没查到的话返回empty,c.Row返回的是查找到这个值所在的行数。
range里面放的是坐标或者范围
》》怎样实现这个人事系统中的性别和婚姻状况,学历等复选框内容的显示代码?
这个问题使用的是用find查到值,然后把这个值复制给这个控件
>>With Worksheets(1).Range("DataArea")
这个是定义选定的范围,有一个方位被定义为"DataArea",然后在这个范围内用find方法查找目标值
c是创建的find方法的对象,返回的是查找到的值,如果没查到的话返回empty,c.Row返回的是查找到这个值所在的行数。
range里面放的是坐标或者范围
》》怎样实现这个人事系统中的性别和婚姻状况,学历等复选框内容的显示代码?
这个问题使用的是用find查到值,然后把这个值复制给这个控件
>>With Worksheets(1).Range("DataArea")
这个是定义选定的范围,有一个方位被定义为"DataArea",然后在这个范围内用find方法查找目标值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询