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

how to copy excel column data to another worksheet and do text-to-columns programatically

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

我在想..

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

中的两个特定列

我要解析的数据是名字/姓氏 - 电子邮件,我想要这样的结果:

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

我正在 vb.net 中使用导入 Microsoft.Office.Interop 来操纵 Excel。

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

当下一个单元格为空时循环结束。

假定数据如下所示:
"First Name Last Name 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 列包含电子邮件地址。