excel - 自动填充公式到数据 VBA 的末尾
问题描述
当我查找 VBA 以将公式自动填充到工作簿中所有工作表的数据末尾时,我发现了这个:
Sub FillFormula()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
ws.Range("Q2").Formula = "=CONCATENATE(A2,B2,C2)"
ws.Range("Q2", "Q" & Cells(Rows.Count, 1).End(xlUp).Row).FillDown
Next
End Sub
它工作正常,但不适用于我的公式。我需要它来使用这个公式:
=CONCATENATE(A2,CHAR(10),"Serving:"," ", O2,CHAR(10),"Contact:"," ", B2," ", C2,CHAR(10), F2, ",", " ", G2, " ",H2,CHAR(10), I2,",", " ", J2, " ",K2,CHAR(10),"Phone:"," ",L2,CHAR(10), "Fax:"," ",M2,CHAR(10), "Email:", " ", D2,CHAR(10),"Website:", " ", N2,CHAR(10),P2,CHAR(10)," ",CHAR(10))
但是,由于公式中有许多 ",因此无法正常工作。
有什么建议么?
谢谢!
解决方案
就像 Marcucciboy2 所说,使用 VBA 时,您必须在公式中加倍引号:
Sub FillFormula()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
ws.Range("Q2").Formula = "=CONCATENATE(A2,CHAR(10),""Serving:"","" "", O2,CHAR(10),""Contact:"","" "", B2,"" "", C2,CHAR(10), F2, "","", "" "", G2, "" "",H2,CHAR(10), I2,"","", "" "", J2, "" "",K2,CHAR(10),""Phone:"","" "",L2,CHAR(10), ""Fax:"","" "",M2,CHAR(10), ""Email:"", "" "", D2,CHAR(10),""Website:"", "" "", N2,CHAR(10),P2,CHAR(10),"" "",CHAR(10))"
ws.Range("Q2", "Q" & Cells(Rows.Count, 1).End(xlUp).Row).FillDown
Next
End Sub
推荐阅读
- lua - Roblox Lua 无法访问 modulescript 功能
- c - 为什么我的浮点变量不能存储小数点后的数字?
- r - 错误:创建 data.frame 时使用旧格式损坏 grouped_df 数据?
- ruby-on-rails - 如何在 Ruby on Rails Active Storage 上为 S3 设置传输加速
- visual-studio - 在 Visual Studio for Mac 中打开文件后出错
- python - Python - 如何将带有“+”号的字符串转换为日期时间?
- cookies - HTTP API Gateway JWT Authorizer 从 cookie 获取身份源
- sql - A 和 B 均发生的案例,两次列出该案例
- python - 两个运行脚本之间的通信
- google-sheets - 如何使importxml只给出一定的数据