在Excel VBA中获取所有“复杂”子字符串

时间:2017-08-16 07:38:31

标签: excel string excel-vba vba

我在Excel VBA中的字符串变量中有sql存储过程代码,我试图获取此存储过程中使用的所有表名的列表。因此,每个表都以模式名称Prop.Table1,Prop.Table2开头。 我正在做一个instr并试图得到Prop的出现,但我怎么得到像Prop.Table1这样的全名,我不能只使用mid,因为表名不会总是后跟一个空格(它可以是一行饲料或空间)

输入:

create proc test 
as 
begin
select * from Prop.Table1
join Prop.Table2 p
on Prop.Table1.col1=p.col1
end 

输出:

Prop.Table1
Prop.Table2

我不介意在输出中获取重复的表名。

1 个答案:

答案 0 :(得分:0)

您希望处理目标字符串isFalse可能出现的所有可能“环境”,并提供了三个示例案例(后跟换行符,空格和点)。 所以你想:

  1. 使用多个分隔符将文本拆分为单词。 这可能是最难的部分。 周围有很多选择,每个选项都有其缺陷。 防弹代码为provided by the great Chip Pearson
  2. 查找app.listen(3000, function () {}) 的所有出现次数Prop.TableX。 这已被问过很多次了。根据你的OP,我认为你有这个。 为了以防万一,您可以调整this answer。 见下文
  3. 保留stri以及每个Prop的以下字词stri。 这很容易。
  4. 连接strj(= Prop),striProp(= ".")。 这很容易。
  5. 您可以反转第1项和第2项的顺序,但会有微小的变化。例如,每次分割源字符串的剩余部分以找到子字符串的第二部分。

    ítem2的代码,假设strj包含您要查找TableX的源字符串。

    s