如何使用列C中的数据填写B列中的所有空白

我已经完全改写了我原来的问题,希望堆栈礼仪没问题?

(这不是第三个问题)

****SAMPLE DATA**** Date Order Reference Field 1 06/03/15 **865754iFP 002** 06/03/15 **865754iFP 002** 06/03/15 **818013Dc6 002** 06/03/15 **817660RiV 004** 06/03/15 **920488Hgg 001** 06/03/15 **920488Hgg 001** 06/03/15 **123771Pq2002** 06/03/15 123712p1 001 

在上面的示例数据中,您会看到3个标题Date; 订购; 参考。 字段1.(Col,s A,B,C,第1-8行)

这两列都有订单。 这些数字是我在工作手册中突出显示的数字。

我已经删除了通常会填充空格的数据。 (在我的工作簿中有28列和数百行数据。)

我试图做一些东西来识别所有的粗体细胞,并将它们合并成一个细胞。 您会注意到,在A列中没有加粗单元格的位置,同一行的B列中有粗体 。 在哪里和以什么forms发生是一个variables。 每一行总是会有一个粗体单元格。

这是订单号码,我需要在表单上find所有的订单号码,然后将它们突出显示,并将每个订单号码放在C列中,但在同一行中find。

工作簿已经运行了一个定位,加亮和清理这些订单号的代码,所以它们都在我需要它们在最后的工作表中的基本结构中。 例如; 123456ABC; 6个数字,后跟2或3个字符(Alpha / Num)。

现在我的问题是合并成一列。 或者也许这个词会把它们复制到一列中。

使用列C中的数据填充B列中的所有空白。在我的工作簿中,订单用灰色填充而不是粗体显示。

如果我正确理解你需要什么,那么你可以使用这个:

 Sub test() Dim n&, cl As Range, temp$ n = Cells(Rows.Count, "A").End(xlUp).Row For Each cl In Range([B2], Cells(n, "B")) 'if B grey and C grey If cl.Interior.ColorIndex = 15 And cl.Offset(, 1).Interior.ColorIndex = 15 Then cl.Value = cl.Value & "; " & cl.Offset(, 1).Value cl.Offset(, 1).Value = "": cl.Offset(, 1).Interior.Pattern = xlNone 'if B not grey and C grey ElseIf cl.Interior.ColorIndex <> 15 And cl.Offset(, 1).Interior.ColorIndex = 15 Then cl.Interior.ColorIndex = 15: cl.Offset(, 1).Interior.Pattern = xlNone temp = cl.Offset(, 1).Value: cl.Offset(, 1).Value = cl.Value cl.Value = temp End If Next cl End Sub 

colorindex可以被另一种颜色取代,这取决于你使用的颜色

运行macros之前的数据:

在这里输入图像说明

运行macros后的数据:

在这里输入图像说明

你将需要应用filter每个使用的列,即find最后使用的列索引,并使用for循环应用filter,因为你已经做了,直到最后一列。

您可以使用下面的代码来查找上次使用的列的索引并使用循环。

 Public Function LastColumn(Optional wks As Worksheet) As Long Dim wks As Worksheet Set wks = ActiveSheet LastColumn = wks.Cells.Find(What:="*", _ After:=wks.Range("A1"), _ Lookat:=xlPart, _ LookIn:=xlFormulas, _ SearchOrder:=xlByColumns, _ SearchDirection:=xlPrevious, _ MatchCase:=False).Column End Function