zdly.net
当前位置:首页 >> ExCEl vBA 变量赋值 >>

ExCEl vBA 变量赋值

将代码修改为:function x(a as string) as integer if a = "www" then x = 12 else x = 31 end if end function 回到excel,在a1输入 www ,在b1输入 =x(a1) 改变a1的值,b1中的自定义函数起作用.

这个不同于为integer等类型的一般变量赋值,要先用set 关键字将变量赋为特定对象,创建该对象的一个引用,然后可赋值.Public Sub 测试() Dim dyg As Range '如下语句正确,但意义不大 Set dyg = Range("B2") '常用形式 set dyg=Range("A1") 'A1可换成你想引用的单元格 dyg= Range("B2")End Sub此外,建议楼主将Range("b2")写为Range("B2"), 虽不影响结果,但养成良好的书写习惯比较好,对单元格引用,都默认为大写的.

你可以直接在变量定义后面赋值:Option Explicit Public isAlreadyClicked As Boolean isAlreadyClicked = True

Private Sub Worksheet_Change(ByVal Target As Range) '当某个单元格内容发生改变时,触发该事件,用Target表示该单元格 If Target.Column = 1 Then '当Target的为第一列,也就是A列时 Cells(Target.Row, 2) = "表达式" '给相应的第二列赋值 End IfEnd Sub

申明多个变量用逗号隔开,例如:Dim a, ,b ,c上面的语句申明了三个变量,而赋值需要分开写,例如:a = 1b = 1c = 1

将a.xls工作薄vba标准模块中的变量“aa”设为全局变量,设一个带参数的赋值过程,在b.xls的代码中调用这个过程,参数用你要赋给aa的值.具体如下:'a.xls工作薄中vba标准模块中代码:Public aa Sub Setaa(x) aa = x End Sub'b.xls工作薄中的代码:(括号中的8就是要赋给aa的值) Run "'a.xls'!setaa(8)"

问题出在你的range(cells(2, 1), cells(7, 5))cells里面,当你不在人物总表的时候,cells(,2,1)就是你其它表里的值了.这样修改就正常了.sub aaa() dim 人物签() as variant dim a 人物签 = sheets("人物总表").range(sheets("人物总表").cells(2, 1), sheets("人物总表").cells(7, 5)).value a = 人物签(1, 5) debug.print aend sub

单元格中公式计算值,在VBA中引用时抄取该单元格.value作为参数即可知 如A1里有公式 VBA中 function Test(a as single) …… …… end function 引用时:道Test(A1)即可 在编辑器里 b=Test(range("A1").value)

Private Sub test() Dim rowNo As Long, rng As Range Set rng = Sheet2.Range("A:A").Find("", , , xlValue) If Not rng Is Nothing Then rowNo = rng.Row '行号 End IfEnd Sub

假设把 sheet1 中A1单元格赋值给X变量,语句如下:X = sheets(1).range("A1") 假设X经过计算后,得到一个变量值Y,那么把Y赋值给A1,语句为:sheets(1).range("A1")=Y 这样就实现了单元格与变量之间的相互赋值 关于此例中涉及到的

pxlt.net | 9371.net | eonnetwork.net | zxqt.net | gpfd.net | 网站首页 | 网站地图
All rights reserved Powered by www.zdly.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com