Excel VBA代码,用于根据相邻的选项填充单元格附近的文本

时间:2013-03-08 01:40:47

标签: vba excel-vba excel-2010 excel

根据下拉菜单中的选择,尝试使用下拉菜单编写代码以填充单元格附近的单元格。

我需要将其仅应用于活动工作表,而不一定需要整个工作簿。

在VBA编写代码相对较新,可能是一个菜鸟错误,但仍然需要一些帮助!

获取短暂时间错误对象“范围”的方法“值”失败。

这是我的代码,它是整个工作簿中唯一的代码......

Private Sub Worksheet_Change(ByVal Target As Range)


Select Case Range("F18")

Case "Made Margin/Made Sales $"
    Worksheets("Store #").Range("G18").value = 
    "Made margin by $XXX GIG at XX.XX%. Shrink  at XX.XX% or $XXX. QTD Margin at 
    XX.XX%"

Case "Made Margin/Missed Sales $"
    Worksheets("Store #").Range("G18").value = 
    "Made margin by $XXX GIG at XX.XX%. Shrink at XX.XX% or $XXX. QTD Margin at XX.XX%   
    Missed sales by $XXX. Begin explaining Sales $ miss here"

Case "Missed Margin/Made Sales$"
    Worksheets("Store #").Range("G18").value = "Missed margin by $XXX GIG at XX.XX%.   
    Shrink at XX.XX% or $XXX. QTD Margin at XX.XX% Made sales by $XXX. Begin explaining   
    Margin $ miss here"

Case "Missed Margin/Missed Sales"
    Worksheets("Store #").Range("G18").value = "Missed margin by $XXX GIG at XX.XX%.  
    Shrink at XX.XX% or $XXX. QTD Margin at XX.XX% Begin explaining Margin $ miss here,  
    followed by explaining Sales $ miss"

End Select

End Sub

任何帮助都会非常感激!

1 个答案:

答案 0 :(得分:0)

您需要添加一个仅在F18更改时触发事件的条件。那,并将字符串放入一行或使用“_”键来表示多行代码。我还要确保每个案例值只有一组引号,否则会破坏代码。

我试过这个并且代码效果很好。

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("F18")) Is Nothing Then

Select Case Range("F18")

Case "Made Margin/Made Sales $"
    Worksheets("Store #").Range("G18").Value = "Made margin by $XXX GIG at XX.XX%.     Shrink  at XX.XX% or $XXX. QTD Margin at"

 Case "Made Margin/Missed Sales $"
    Worksheets("Store #").Range("G18").Value = "Made margin by $XXX GIG at XX.XX%. Shrink at XX.XX% or $XXX. QTD Margin at XX.XX%. Missed sales by $XXX. Begin explaining Sales $ miss here"

Case "Missed Margin/Made Sales$"
    Worksheets("Store #").Range("G18").Value = "Missed margin by $XXX GIG at XX.XX%. Shrink at XX.XX% or $XXX. QTD Margin at XX.XX% Made sales by $XXX. Begin explaining Margin $ miss here"

Case "Missed Margin/Missed Sales"
    Worksheets("Store #").Range("G18").Value = "Missed margin by $XXX GIG at XX.XX%. Shrink at XX.XX% or $XXX. QTD Margin at XX.XX% Begin explaining Margin $ miss here, followed by explaining Sales $ miss"

End Select

End If

End Sub