如何将Excel列数据复制到另一个工作表并以编程方式执行文本到列

时间:2015-01-27 19:14:17

标签: arrays vb.net excel

我有一个应用程序的工作副本,它将打开工作簿/工作表并在两者之间成功复制数据然后保存但我需要解析一些数据,因为我将其复制到另一个单元格中。

我在想......

〜创建数组 〜获取xlSourceFile.worksheets(“sheet1”)中的所有值并存储到数组中 〜解析数组提取我需要的数据(以编程方式从文本到列) 〜将数组数据写入excel工作表中的两个特定列

我要解析的数据是名字/姓氏 - 电子邮件,我希望这样做:

Joe Shmoe to go into one column //  Joe Shmoes Email to another column.

我在vb.net中使用导入Microsoft.Office.Interop来处理Excel。

1 个答案:

答案 0 :(得分:1)

请原谅格式化,我是SO的新手。这是VBA,但我相信一般逻辑会起作用。它假定电子邮件地址后面没有空格填充。它在原始组合字符串上向后搜索第一个空格,并将其标记为电子邮件地址的开头(名称末尾)。

当下一个单元格为空时,它会循环。

假设数据如下:
"名字姓氏myaddress@example.com"

For Each cell In Worksheets("Sheet1").Range("A:A")
   i = i + 1
   If cell = "" Then GoTo loopout
   rawstring = cell.Value
   'rawString = "First Name Last Name myaddress@example.com"
   emailStartPosition = InStrRev(rawstring, " ")
   myname = Left(rawstring, emailStartPosition)
   myemail = Right(rawstring, Len(rawstring) - emailStartPosition)
   Worksheets("Sheet1").Range("B" & i).Value = myname
   Worksheets("Sheet1").Range("C" & i).Value = myemail
Next
loopout:
End Sub

B列将具有名称,而C列将具有电子邮件地址。