如何将 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 列包含电子邮件地址。
我有一个应用程序的工作副本,它将打开 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 列包含电子邮件地址。