На основе вашего комментария к ответу @ 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
open (поместите его в ThisWorkbook
module)
Private Sub Workbook_Open()
Dim sh As Worksheet
For Each sh In Me.Worksheets
SplitNames sh
Next
End Sub