Vba 在两列之间合并Excel单元格

Vba 在两列之间合并Excel单元格,vba,excel,Vba,Excel,我正在处理许多Excel文件。第一列固定为标题product name。另一列名称是price 我正在尝试合并这两列之间的列,每个文件在这两列之间包含不同数量的列product name and price 我在编写宏来运行每个Excel文件时遇到问题,有人能给我举个例子吗?我假设只需要检查第一行。假设这些是标题 您可以使用下面的VBA检查列标题并合并列之间的内容 我使用了随机变量,你可以相应地改变 Sub test() Cells(1, 1).Select j = 1 D

我正在处理许多Excel文件。第一列固定为标题
product name
。另一列名称是
price

我正在尝试合并这两列之间的列,每个文件在这两列之间包含不同数量的列
product name and price


我在编写宏来运行每个Excel文件时遇到问题,有人能给我举个例子吗?

我假设只需要检查第一行。假设这些是标题

您可以使用下面的VBA检查列标题并合并列之间的内容

我使用了随机变量,你可以相应地改变

Sub test() 
    Cells(1, 1).Select 
    j = 1 
Do
    k = Cells(1, j).Value
    Cells(1, j).Select
    j = j + 1
Loop Until (k = "Product-name")
c1 = j
Do
    k = Cells(1, j).Value
    Cells(1, j).Select
    j = j + 1
Loop Until (k = "Price")
c2 = j - 2
If (c2 > c1) Then
    Range(Columns(c1), Columns(c2)).Select
    Selection.Merge
End If
End Sub
k变量将存储列值,并将与“
产品名称
”和“
价格
”进行比较
c1将存储“
产品名称”的下一列编号
c2将存储“
Price
”-1的列号,在逻辑上它前进2,因此用2减去列号。

现在,两个标题之间都有了列号。

这里有一个需要考虑的小场景,如果没有列,或者如果这两列之间至少有一列,在这种情况下,您不能直接合并列。因此,需要对列值进行额外的比较。


我希望这能回答你的问题。代码经过测试,运行良好。

我的问题有什么问题吗。lolShow告诉我们你的代码:)@Omar-听起来像是一个自行车酒吧的保镖会说的话。@Nandish,你需要付出一些努力。你试了什么?你的代码哪里出错了?你真的不能指望我们只做你的工作…哦,好吧,你需要在行中循环,并在开始和结束列之间合并所有单元格。恐怕没有捷径,多谢奥马尔。谢谢你的帮助:)我想你的问题可以从“暂停”中删除。奥马尔:谢谢你编辑的格式@南迪什:我想你的要求已经满足了。只需确保“产品名称”和“价格”单元格上没有多余的空格。否则代码将无限运行。标题的顺序也应该是“产品名称”和“价格”。