ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 314|回复: 13

range赋公式缺少语句结束

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-8-14 08:46 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
关于vba公式赋值语法问题
   lt3 = lt3 + 1
    Range("AB" & lt3).Formula ="=Range("s" & lt3) / Range("r" & lt3)"
range赋公式这一步老说缺少语句结束,看不出来怎么错了。

TA的精华主题

TA的得分主题

发表于 2024-8-14 10:03 来自手机 | 显示全部楼层
会飞的土豆宏宏 发表于 2024-8-14 08:47
我是截取了部分代码,不涉及 sub 和end sub的问题

猜测1→等号后赋数值
Range("AB" & lt3).Formula = "=" & Range("s" & lt3) / Range("r" & lt3)

猜测2→等号后赋公式
Range("AB" & lt3).Formula = "=s" & lt3 & "/r" & lt3

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-8-14 08:47 | 显示全部楼层
我是截取了部分代码,不涉及 sub 和end sub的问题

TA的精华主题

TA的得分主题

发表于 2024-8-14 09:31 | 显示全部楼层
你在表格里输公式用的都是地址吧,什么时候用Range对象了啊。

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-8-15 09:56 | 显示全部楼层
Again123456 发表于 2024-8-14 09:31
你在表格里输公式用的都是地址吧,什么时候用Range对象了啊。

感谢老师回复,确实原值是这样的,
t3 = lt3 + 1
    Range("AB10671").Formula = "=S10671/R10671"
我改写了一下。目的是将s后面的10671后面的数字用变量替代掉,这样就不用手动输入了,但是这里的意思是吧这部分公式直接填入到表格里吗?那单元格怎么实现赋值替代呢?

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-8-15 10:15 | 显示全部楼层
本帖最后由 会飞的土豆宏宏 于 2024-8-15 13:42 编辑
lss001 发表于 2024-8-14 10:03
猜测1→等号后赋数值
Range("AB" & lt3).Formula = "=" & Range("s" & lt3) / Range("r" & lt3)

谢谢大佬,可以了,用的第二种,感激之情无以言表,作为一个野生vba学习者我困惑了好久。
斗胆进一步提问改写函数公式的内容
原公式如下所示
Range("AC" & lt3).Formula = "=XLOOKUP(b10671&G10671,'zpp017 1600'!A:A&'zpp017 1600'!I:I,'zpp017 1600'!K:K)"
改写成下面的公式,提示formula作用于range时失败
Range("AC" & lt3).Formula = "=XLOOKUP(b" & lt3 & "G" & lt3 & ",""'zpp017 1600'!A:A&'zpp017 1600'!I:I,'zpp017 1600'!K:K)" '修改为型体号
思考了一下,改写成这样就可以了
Range("AC" & lt3).Formula = "=XLOOKUP(b:b&g:g,'zpp017 1600'!A:A&'zpp017 1600'!I:I,'zpp017 1600'!K:K)" '修改为型体号
最后一步了,又卡在这里,这部写完了我的简单vb就结束了
Range("AG" & lt3).Formula = "=AE" & lt3 * 250  '这一步需要改写
这里实现的效果是单元格 ag&lt3的值 等于单元格ae(250倍lt3)的值,
想要实现的效果是单元格 ag &lt3的值 固定等于 ae&lt3 值的250倍

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-8-15 10:21 | 显示全部楼层
lss001 发表于 2024-8-14 10:03
猜测1→等号后赋数值
Range("AB" & lt3).Formula = "=" & Range("s" & lt3) / Range("r" & lt3)

为什么只给了一分,我想给高分的

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-8-15 10:32 | 显示全部楼层
lss001 发表于 2024-8-14 10:03
猜测1→等号后赋数值
Range("AB" & lt3).Formula = "=" & Range("s" & lt3) / Range("r" & lt3)

可否在以上基础上延伸一下,这种格式的公式应该如何改写?
Range("AE" & lt3).Formula = "=XLOOKUP(b10671&G10671,'zpp017 1000'!A:A&'zpp017 1000'!I:I,'zpp017 1000'!K:K)"
也是等号后赋公式,
感觉基础非常薄弱,基础写法都不会

TA的精华主题

TA的得分主题

发表于 2024-8-15 10:52 | 显示全部楼层
会飞的土豆宏宏 发表于 2024-8-15 09:56
感谢老师回复,确实原值是这样的,
t3 = lt3 + 1
    Range("AB10671").Formula = "=S10671/R10671"

Formula的值是String类型,其中涉及的单元格部分是Range().Address() 也是String类型才可。如果你一定要用Range对像,应该可以这样表示:Range("a" & i).Address & "/" Range("b" & i).Address

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-8-15 11:54 来自手机 | 显示全部楼层
会飞的土豆宏宏 发表于 2024-8-15 10:32
可否在以上基础上延伸一下,这种格式的公式应该如何改写?
Range("AE" & lt3).Formula = "=XLOOKUP(b106 ...

Range("AC" & lt3).Formula2 = "=XLOOKUP(B" & lt3 & "&G" & lt3 & ",'zpp017 1600'!A:A&'zpp017 1600'!I:I,'zpp017 1600'!K:K)"

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-21 19:51 , Processed in 0.041961 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表