2024年6月2日发(作者:)

excel vba 跨工作簿的过程或函数调用程序写法

在所有录制的宏的语句前面加上 "Workbooks("").",如:

Workbooks("").Sheets(1).Select

方便一点的话就

Dim WB As Workbook

Set WB = Workbooks("")

(1).Select

在VBA中自定义的函数,需要能在Excel中引用,需要在Function前面加Public

引用方法:=function_name

Sub Filter() ("A1").edFilter _

Action:=xlFilterCopy, Unique:=True, CopyToRange:=("A1")

End Sub

复制代码 代码解析: Filter过程使用AdvancedFilter方法对单元格A1的当前区域筛

选不重复的记录,并将筛选结果复制到工作表Sheet2中。应用于Range集合的

AdvancedFilter方法语法如下: AdvancedFilter(Action, CriteriaRange, CopyToRange,

Unique)

参数Action是必需的,可以为表格1所列的XlFilterAction常量之一。

XlFilterAction 常量 值 描述

xlFilterInPlace 1 在原有区域显示筛选结果

xlFilterCopy 2 将筛选结果复制到其他位置

参数CriteriaRange指定高级筛选操作的条件区域,缺省时表示没有条件限制。 参数

CopyToRange表示指定被复制行的目标区域,仅当Action为xlFilterCopy时有效,否则

忽略本参数。 参数Unique指示是否选择不重复的记录,如果其值为True,则重复出现

的记录仅保留一条;如果其值为 False(默认值),则筛选出所有符合条件的记录。 运

行FilterUnique过程

FormulaR1C1 是公式输入方法中括号表示的是相对于选定单元格的相对偏移

量,”-”为向左或向上偏移,正数为右或下偏移。无中括号表示的是相对于选定单元

格的绝对偏移量,没有负数。“R”和”C”表示的是待变“行”和“列”。

如:选定单元格为C8

R[-1]C[-1]为B7单元格,行列都-1,R[1]C[2]为E9单元格,行+1,列+2

R1C1代表A1单元格,R5C6代表F5单元格

例:C1单元格为”=A1+B1″

Range(“C1″).FormulaR1C1 = “=RC[-2]+RC[-1]”

例:C1单元格为”=A2+E3″

Range(“C1″).FormulaR1C1 = “=R[1]C[-2]+R[2]C[2]“