根据您对@user496607 回答的评论,您的数据实际上是
johnsmith:johnsmith@gmail.com
adamsmith:adam1i2@gmail.com
CoryAdam:Cory1991@gmail.com
在A 列中。这是正确的吗?
您想让 Excel 在每次打开工作簿时自动将其拆分为 A 和 B 列?
这个Sub 将进行拆分
Sub SplitNames(sh As Worksheet)
Dim rng As Range
Dim dat As Variant
Dim i As Long, j As Long, s As String
Set rng = sh.Range(sh.Cells(1, 1), sh.Cells(sh.Rows.Count, 1).End(xlUp))
'rng.Select
dat = rng.Formula
If IsArray(dat) Then
ReDim Preserve dat(1 To UBound(dat, 1), 1 To 2)
For i = LBound(dat, 1) To UBound(dat, 1)
s = dat(i, 1)
j = InStr(dat(i, 1), ":")
If Left(s, 1) <> "=" And j > 0 Then
dat(i, 2) = Mid(s, j + 1)
dat(i, 1) = Left(s, j - 1)
End If
Next
rng.Resize(, 2).Formula = dat
End If
End Sub
这可能会被另一个 Sub 在您想要的任何触发器上调用。例如这将在Workbook打开时调用它(把它放在ThisWorkbook模块中)
Private Sub Workbook_Open()
Dim sh As Worksheet
For Each sh In Me.Worksheets
SplitNames sh
Next
End Sub