gpt4 book ai didi

vba - 如何在 VBA 宏中应用 Excel 公式来查找倒数第二个单词

转载 作者:行者123 更新时间:2023-12-03 01:36:23 27 4
gpt4 key购买 nike

我对 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com