Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA基于InStr提取子字符串并粘贴到列中所有单元格的工作表2循环中_Vba_Excel_For Loop - Fatal编程技术网

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

Excel VBA基于InStr提取子字符串并粘贴到列中所有单元格的工作表2循环中,vba,excel,for-loop,Vba,Excel,For Loop,MicrosoftExcelVBA 我有一个字符串列表,其中包含Y列中合并的店铺ID代码和地址,我想沿着这个列表,只提取ID代码,然后将其粘贴到C列中的第二个电子表格中 我正在努力研究如何使用For语句为列中的每个单元格循环此操作,因为我希望该语句从Activesheet列Y中的一个单元格中查找信息,然后将子字符串粘贴到Sheet Part 1列C中,然后循环到两个工作表范围内的下一个单元格 我的代码不足: 在ActiveSheet中为Y列设置for循环,其中存储了店铺ID信息 For Each

MicrosoftExcelVBA

我有一个字符串列表,其中包含Y列中合并的店铺ID代码和地址,我想沿着这个列表,只提取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
对location对象使用left函数,告诉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
谢谢你的建议

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列中有前导空格?

谢谢您的代码。目前,当我在第6行中使用.text时,它会出现问题,但对.Value有效。它也不会返回任何值,当我在第6行使用换行符时,我可以看到Location变量的值永远不会超过1。它应该在6到9之间。任何进一步的想法都会令人惊讶。再次感谢。感谢更新,Y列中没有前导空格,位置变量始终为1。令人烦恼的是,在我完成了一半的代码中,每行的位置都在正确地更改。再次干杯!那是因为我是个白痴!Location=instr(“,trim(c.text))应该是Location=instr(“,c.text”)我搞错了!