我有一个文件,其中 A 列包含唯一引用(例如公司名称),B 列中返回一个或多个与该唯一值相关的值(例如帐户)。这些值以逗号分隔,有些公司只有一个帐户,有些则有多个。使用“文本到列”,我便可以在与公司名称相同的行上获得单独的列中的所有帐号。
我希望将每个帐号放在一个新行上,每个帐号都对应公司名称,这样我就有一张只有 2 列宽的工作表,可以在单个帐户级别进行搜索,同时返回正确的公司。这可能吗?
答案1
答案2
@Jonnie,如果您要使用 TextToColumns 将帐号分散到各个列中。然后转到菜单“屏幕”,然后单击右侧宏上方的图标。输入宏的名称,然后单击“创建”。然后将下面的代码粘贴到两行之间,并使用 sub。关闭 VBA 窗口以返回到您的数据。单击数据中的任意位置。再次单击宏的图标,选择您的宏名称,然后单击运行。
Dim data As Range
Dim i As Integer
Dim j As Integer
Set data = ActiveCell.CurrentRegion 'Selecting the active region
For i = data.Rows.Count To 1 Step -1 'for all row (start at bottom)
For j = 3 To data.Columns.Count 'for all columns (start at third column)
If Not IsEmpty(data(i, j)) Then 'if there is a value
data.Rows(i + 1).Insert 'insert a new row below
data(i + 1, 1) = data(i, 1) 'copy the company
data(i + 1, 2) = data(i, j) 'copy the account number
data(i, j).Clear 'delete the original value
End If
Next j
Next i
这将产生一个列表
company A; accno 1
company A; accno 2
company B; accno 3
company C; accno 4