下拉触发细胞形成

时间:2015-10-08 14:31:20

标签: excel excel-vba drop-down-menu formatting vba

当用户从下拉列表中选择一个项目时,我需要列表所在的单元格与下面的1个单元格或3个单元格合并并居中(单元格的总大小现在为2或4个单元格高度,具体取决于在下拉选项上)。我还需要输入一个字符("#"或" X"),因为合并的单元格在新合并单元格右侧的列中很高。

示例将单元格A1:A4合并并居中。需要填写单元格B1:B4,具体取决于下拉列表中选择的值。

A       B
1       #
2       X
3       #
4       X

我尝试在宏中捕获我的步骤,但它只是记录我的确切条目,而不是我可以概括它的方式。我还认为我需要一个案例陈述,因为我有七种不同的格式化结果,基于18个项目的下拉列表。合并功能只是我记录为宏的复制/粘贴,我只想在代码中使用它。如果存在合并/中心,我将采用任何更简单的版本。这是针对七种情况中的两种情况,但其余部分仅在右侧列中添加的文本中有所不同:

Select Case Module  
Case "TT"  
Module = "ModTT"  
ActiveCell.Resize(2, 0).Select  
With Selection  
    .HorizontalAlignment = xlCenter  
    .VerticalAlignment = xlCenter  
    .WrapText = True  
    .Orientation = 0  
    .AddIndent = False  
    .IndentLevel = 0  
    .ShrinkToFit = False  
    .ReadingOrder = xlContext  
    .MergeCells = False  
End With  
Selection.Merge  
    ActiveCell.Offset(0, 1).Select.Value = "#"  
    ActiveCell.Offset(1, 0).Select.Value = "#"  
Case "TF"  
Module = "ModTF"  
ActiveCell.Resize(4, 0).Select
With Selection  
    .HorizontalAlignment = xlCenter  
    .VerticalAlignment = xlCenter  
    .WrapText = True  
    .Orientation = 0  
    .AddIndent = False  
    .IndentLevel = 0  
    .ShrinkToFit = False  
    .ReadingOrder = xlContext  
    .MergeCells = False  
End With  
Selection.Merge  
    ActiveCell.Offset(0, 1).Select.Value = "#"  
    ActiveCell.Offset(1, 0).Select.Value = "X"  
    ActiveCell.Offset(1, 0).Select.Value = "#"  
    ActiveCell.Offset(1, 0).Select.Value = "X"  

0 个答案:

没有答案