Vba 字符串中的引号“ 怎样处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vba 字符串中的引号“ 怎样处理相关的知识,希望对你有一定的参考价值。

找到第1个双引号,记录下来,再找第2个赋值成0,以c语言编程为例: #incude void main() char str[256],*p,*q; gets(str); q=str; b=0; while ( *q ) if ( (*q)=='\"' ) b=1; break; else q++; if ( b ) q++; p=q; while ( *q ) if 参考技术A 第一步:将字符串里所有要输出的引号”变成双引号“”
第二步:用引号把整个句子括进去“xxx”

Excel VBA填充表(ListObject)列与其他表列之间的操作结果

【中文标题】Excel VBA填充表(ListObject)列与其他表列之间的操作结果【英文标题】:Excel VBA Fill Table(ListObject) Column With Result of Operation Between Other Table Columns 【发布时间】:2018-04-21 19:08:53 【问题描述】:

在 Excel VBA 中,我找不到使用索引号而不是使用字符串中的标题对表的两个或多个列进行操作来填充表 (ListObjects) 中的列 (ListColumns) 的方法。因此,例如,我知道这在使用时有效:

lo.ListColumns("Spread").DataBodyRange = "=[Current]-[Historic]"

但是说“点差”是第 10 列,“当前”是第 5 列,“历史”是第 7 列。有没有办法执行以下操作来填充该列?我知道这不起作用,但我希望有类似的东西,因为我尝试了各种方法并且无法在搜索中找到它。

lo.ListColumns(10).DataBodyRange = lo.ListColumns(9).DataBodyRange - _ 
                                   lo.ListColumns(10)

感谢您的帮助。

【问题讨论】:

【参考方案1】:
lo.ListColumns(10).DataBodyRange = "=[" & lo.ListColumns(5).Name & "]-[" & lo.ListColumns(7).Name & "]"

【讨论】:

危险。后来有人插入或删除了一个表列,宏做错了事。最好不要像这样将引用硬编码到 VBA 中。 虽然我完全同意,但问题很明确,我选择相信 OP 知道他/她在做什么。 是的,我知道你给了他们的要求。只是他们要求的东西可能对他们的健康有害。在这种情况下,我想明确指出他们向他们提出的问题以及谷歌未来带来的任何其他人的问题。将来可能会为某人避免一个令人尴尬的、限制职业生涯的错误。【参考方案2】:

您是否有特定原因要使用 INDEX 而不是列标题?使用硬编码的索引号并不能生成健壮的代码……这意味着如果您(或其他人)以后更改表格的布局,您必须检查您的代码并修改那些硬编码的引用。这正是 ListObject 参考旨在避免的(在 VBA 和公式方面)。

使用列标题要好得多,就像在您的示例中一样。如果有人可能会更改列名,则设置一个命名范围以指向相关的 ListColumns,并在您的代码中引用这些命名范围。

如果出于某种原因您只想找到 INDEX 编号,那么只需执行以下操作:

Dim lo as ListObject
Dim lc as ListColumn

On Error Resume Next
Set lc = lo.ListColumns("sName")
On Error GoTo 0

...然后你可以测试是否找到了

If Not lc Is Nothing Then Msgbox(lc.Index)

【讨论】:

以上是关于Vba 字符串中的引号“ 怎样处理的主要内容,如果未能解决你的问题,请参考以下文章

vba 如何去掉返回结果两端的双引号?

如何在vba中的字符串中加双引号?

如何仅在 VBA 逗号分隔列表中的字符串(而不是数字)上加上引号?

Excel vba替换双引号怎么写?

编辑器中的 ms-access VBA 长 sql 查询字符串行拆分(内联双引号)

VBA,UDF中没有引号的字符串参数 - 如何访问它们的值?