Excel VBA提取基于InStr的子字符串,并粘贴到工作表2循环中列中的所有单元格

时间:2018-05-16 10:57:41

标签: excel vba excel-vba for-loop

Microsoft Excel VBA

我有一个包含商店ID代码和字符串的字符串列表。在Y列中合并的地址,我想在此列表中删除,只提取ID代码,然后将其粘贴到C列的第二个电子表格中。

我正在努力解决如何使用For语句为列中的每个单元格循环它,因为我希望语句从Activesheet列Y中的单元格中查找信息,然后将子字符串粘贴到Sheet Part 1 C列中,然后循环到两个工作表范围内的下一个单元格。

我的代码不足:

为ActiveSheet中的Y列设置for循环,其中存储了商店ID信息

For Each cell In ActiveSheet.Range("Y:Y")

创建一个位置变量来存储instr值,应该更改每个循环,不确定这是否是这样做的方式

    Dim location As Integer

创建一个对象,用于存储ID代码在我的字符串中完成的位置

    location = InStr(1, ActiveSheets.Range("Y:Y"), " ")-1

将left函数与location对象一起使用,告诉excel我想复制商店ID并将其粘贴到第1部分表中的C列。

    Left(xCell, location).Copy Sheets("Part 1").Range("C:C")

Next

没有注释的完整代码:

For Each cell In ActiveSheet.Range("Y:Y")
    Dim location As Integer
    location = InStr(1, ActiveSheets.Range("Y:Y"), " ")-1
    Left(xCell, location).Copy Sheets("Part 1").Range("C:C")
Next

感谢您的任何建议

1 个答案:

答案 0 :(得分:0)

Dim Location as long
Dim c as range
For each c in range("Y:Y")
    Location = instr(" ",trim(c.text))
    if location >0 then
        sheets("Part 1").range("C" & c.row).value = left(c,location)
    end if
 next c

这假定您希望它们出现在列C中与它们在Y列中相同的行中

编辑以修复我的错误并添加修剪 - 我怀疑你在Y列中有一个前导空格?