VBA 函数变量中引用单元格

下面这段代码,我想把替换的内容不用常量表示,而引用单元格a1的内容,即怎么把下面代码中a,b表示成单元格a1?Selection.ReplaceWhat:="a",Rep... 下面这段代码,我想把替换的内容不用常量表示,而引用单元格a1的内容,即怎么把下面代码中a,b表示成单元格a1?
Selection.Replace What:="a", Replacement:="b", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
展开
 我来答
网海1书生
科技发烧友

2013-10-17 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26225

向TA提问 私信TA
展开全部

楼上说得很对。还有一种方式就是用第几行第几列的方式表示:

Selection.Replace What:=Cells(1, 1), Replacement:=Cells(1, 2), LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

这种方式适合在循环中批量处理多行或多列数据,因为Cells里面的数字是可以用变量的,比如Cells(i, j)

K_BEAT
2013-10-17 · TA获得超过1245个赞
知道小有建树答主
回答量:879
采纳率:91%
帮助的人:396万
展开全部

1. 最简洁的书写:

Selection.Replace What:=[A1], Replacement:=[B1], LookAt:=xlPart, _
       SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
       ReplaceFormat:=False

2. 用 Range 对象:

Selection.Replace What:=Range("A1"), Replacement:=Range("B1"), LookAt:=xlPart, _
       SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
       ReplaceFormat:=False


PS:

需要绝对引用的话请加上 "$" 符号,比如 [$A$1], Range("$A$1")

追问
谢谢快速响应,我已经明白了,但是还有个小问题,如果引用的是外部单元格,例如“报告.xls”的sheet名称是“数据”的单元格a1,又怎么表示
追答

如果是外部单元格,可以这样引用:

='D:\[Sample.xlsx]Sheet1'!A1

替换掉路径和工作表名即可

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式