作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 VBA 很陌生,但已经使用过一些 Excel。我创建了一个公式,它完全满足我的需要:查找单元格中倒数第 N 个单词(主要是倒数第 2 个或倒数第 3 个)。我认为我的主要问题是如何将公式应用于一系列单元格而不覆盖单元格以及如何在 VBA 中使用 Excel 公式。我使用的Excel公式如下
=TRIM(LEFT(RIGHT(" "&SUBSTITUTE(TRIM(A1)," ",REPT(" ",60)),180),60))
这可能不是最有说服力的方式,但在 Excel 中效果很好。将数字 180 更改为 60 将给出最后一个单词,120 将给出倒数第二个单词,依此类推。但在 VBA 中,它给出了第一个语法错误,当我让它在没有参数且仅使用 TRIM(A1) 的情况下运行时,它会覆盖单元格。我使用的代码如下(仅引用A1进行测试):
reportsheet.Range("A1").Formula = "=TRIM(LEFT(RIGHT(" " & SUBSTITUTE(TRIM(A1)," " ,REPT(" ",60)),180),60))"
我的宏搜索并提取 Sheet1 到 Sheet2 中的特定数据。现在我想将这个(或类似的)公式应用于它提取到 Sheet2 的数据。我尝试了很多不同的方法,从使用 VBA 自己的修剪到制作完全自定义的函数。这些似乎都不起作用,我认为这归因于对 Excel 公式和 VBA 如何协同工作的误解。
此外,我正在尝试找到一种方法来查找单元格中唯一的数字并删除其他所有数字。对此的任何帮助也将不胜感激。
编辑:抱歉,大家,我提供的代码中有一个错误,在这两种情况下它都应该引用 A1。
最佳答案
在带引号的字符串中加倍引号或使用替代方案。
reportsheet.Range("A1").Formula = "=TRIM(LEFT(RIGHT("" "" & SUBSTITUTE(TRIM(A20),"" "" ,REPT("" "",60)),180),60))"
'alternative
reportsheet.Range("A1").Formula = "=TRIM(LEFT(RIGHT(char(32) & SUBSTITUTE(TRIM(A20), char(32), REPT(char(32),60)),180),60))"
关于vba - 如何在 VBA 宏中应用 Excel 公式来查找倒数第二个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50598556/
我是一名优秀的程序员,十分优秀!