AutoFit行高在手动运行合并单元格时有效,但不适用于VB

时间:2014-09-04 19:11:38

标签: excel excel-vba merge vba

我能够在具有引用合并单元格的索引/匹配的单元格上手动自动调整行高,但是当我使用如下的宏时,它会清除我自动调整的单元格中的所有值并设置我的合并的字段值等于#value。这是我在“采购”栏目的工作表1中使用的宏:

Sub AutofitMerged()
Range("Sheet1[Purchases]").Select
Selection.Rows.AutoFit
End Sub

以下是我在合并购买列中的工作表2中使用的功能,以合并具有可见的公共ID的单元格(我不希望合并过滤的值)。

Function JoinAll(ByVal BaseValue, ByRef rng As Range, ByVal delim As String)
Application.Volatile
For Each a In rng
If a = BaseValue And a.EntireRow.Hidden = False Then
JoinAll = JoinAll & IIf(JoinAll = "", "", delim) & a(1, 6)
End If
Next a
End Function

在我自动调整的单元格中,我使用Index / Match从第二个工作表中获取合并的值。第二个工作表是包含合并字段的工作表。我的工作表使用以下架构:

Sheet 1中

Client ID | Purchases 
1 | Purchase 1, Purchase 2 (Index/Match of Client 1 Purchases from Sheet 2)
2 | Purchase 3 (Index/Match of Client 2 Purchases from Sheet 2)
3 | Purchase 4, Purchase 5 (Index/Match of Client 3 Purchases from Sheet 2)

第2页

Client ID | Purchase | Merged Purchases
1 | Purchase 1 | Purchase 1, Purchase 2
1 | Purchase 2 | Purchase 1, Purchase 2
2 | Purchase 3 | Purchase 3
3 | Purchase 4 | Purchase 4, Purchase 5
3 | Purchase 5 | Purchase 4, Purchase 5

我的目标是在任何时候发生变化时自动调整行高,例如在工作表2中输入的新购买。我设想使用Worksheet_Calculate或其他适当的自动化功能,但是请遵循更多的思想。

0 个答案:

没有答案