高手们请帮我解释一段VB代码

来源:百度知道 编辑:UC知道 时间:2024/05/04 19:45:03
这是在EXCEL里编的VB宏代码,有一处看不懂,请教各位:
FIND(OFFSET(" & f & "!R2C35,0,0,R[16]C9,1),R3C)
其中f是string变量,代表EXCEL一张sheet的名字,请问OFFSET函数的第四个参数代表什么?它本来应该是个常数啊!
还有就是这段代码是干嘛的?FIND的返回值是什么?

FIND(OFFSET(" & f & "!R2C35,0,0,R[16]C9,1),R3C)
此句根本不完整, 前面后面都应尚有" 双引号 及其它 变量或函数
注意: 执行VB是以一行为单位, 楼主应至少将一整段或一整行的代码列出, 以便网友能清楚问题
问题一:
Offset 第4个(代表数组的行数)和第5个(代表数组的列数)参数一定是正整数
R[16]C9, 即单元格 $I17的值 一定是 正整数
由于FIND函数的第一个参数一定是一个 STRING, 故只可以是一个单元格, 故i17的值一定是 1(FormulaArray 除外), 否则会出错误值
其实题目的vb代码, 如忽略Sheetname, 是相当于在工作表打上公式
=FIND(OFFSET($AJ$2,0,0,$I17,1),A$3)
此式内的offset函数内容根本上没有意思, 传回值其实就是$AJ$2
即 = find($AJ$2,A$3)
问题二:
假设 AJ2 是 "C"
A3 是 "EXCEL" (C 是在 EXCEL 第3个位置)
公式的传回值 是 3(integer)
如 AJ2 是 "P", 因 "EXCEL"没有"P", 则出错误值 #VALUE!