当声明一个范围(从合并的单元格获取值)

我试图从合并单元格(这是在一个.find gcell结果的偏移量)通过一个循环遍历行(并在另一张表中查找特定值)的循环获取值。如果代码我们正在寻找的细胞被合并,并执行以下操作:

-Unmerges – 通过使用.Address获取合并单元格的极限 – 查看包含在这些单元格中的值 – 将值重写

在这一点上,它不工作,我相信因为variables格式为.address给出一个string和属性rows.value和.MergeArea需要一个范围我的问题是,我如何从一个地址string更改为范围? 也许这样我可以解决这个问题。 如果你有其他的信号,我会很乐意听的。

非常感谢你。

码:

(循环代码不会显示,因为它工作良好)

lineasemergidasCont = gCell.Offset(, 4).MergeArea.Rows.count emergidainicio = gCell.Offset(, 4).Address emergidafinal = gCell.Offset(lineasemergidasCont, 4).Address goes well until here-------> Range(emergidainicio, emergidafinal).MergeArea.UnMerge filainicio = emergidainicio.Rows.Value filafinal = emergidafinal.Rows.Value For p = filainicio To filafinal If .Cells(p, 10).Value <> "" Then .Cells(p, 10).Value = datoemergido End If Next p For s = filainicio To filafinal datoemergido = .Cells(s, 10).Value Next s 

(代码继续有效)

@ rory,@patrick lapelletier,@ therak,谢谢大家! 在这里,我放下最后工作的代码:

– 查找合并的单元格 – 将这些数据覆盖 – 将所find的值复制到其中一个单元格上并将其发布到所有合并的单元格中 – 将该值复制到另一个单元格

它也考虑到可以复制的值,将其余的结果添加到旧的结果之后。 这工作在一个循环与一个.find函数,在gcell上给出的结果

  do If gCell.Offset(, 4).MergeArea.Address = gCell.Offset(, 4).Address Then 'Not a merged cell If HojaNueva.Cells(F2, 20).Value = "" Then HojaNueva.Cells(F2, 20).Value = gCell.Offset(, 4).Value Else hojito1 = HojaNueva.Cells(F2, 20).Value HojaNueva.Cells(F2, 20).Value = hojito1 & "," & gCell.Offset(, 4).Value End If Else 'is a merged cell lineasemergidasCont = gCell.Offset(, 4).MergeArea.Rows.count emergidainicio = gCell.Offset(, 4).Address emergidafinal = gCell.Offset(lineasemergidasCont - 1, 4).Address Range(emergidainicio).MergeArea.UnMerge Range(emergidafinal).MergeArea.UnMerge numeros1 = Range(emergidainicio).Row numeros2 = Range(emergidafinal).Row For p = numeros1 To numeros2 If Not ws.Cells(p, 10).Value = "" Then datoemergido = ws.Cells(p, 10).Value End If Next p For s = numeros1 To numeros2 ws.Cells(s, 10).Value = datoemergido Next s numeros1 = "" numeros2 = "" If HojaNueva.Cells(F2, 20).Value = "" Then HojaNueva.Cells(F2, 20).Value = datoemergido Else hojito3 = HojaNueva.Cells(F2, 20).Value HojaNueva.Cells(F2, 20).Value = hojito3 & "," & datoemergido End If End If Set gCell = ws.Columns("F").FindNext(gCell) Loop While firstAddress <> gCell.Address