自动添加到列表

时间:2014-03-05 15:55:23

标签: excel excel-vba vba

这是我第一个使用Excel宏的大学IT项目,我在处理数据时遇到了一个小问题。

我有几个复选框可以选择屏幕上的各种项目,然后输入项目名称,价格等相关数据。问题是这些名称必须发票,我不能得到名字很好地转移到发票上。

基本上,发票必须记录项目(显然),但需要检查物品是否已经应用于发票,这就是我遇到的问题。

如何在没有任何额外交互的情况下将项目集中显示在工作表上(也就是说,我只需单击相关复选框而不是手动输入),并很好地显示它们。

“衬垫和延长保修”项目需要一个接一个地展示,而不是2-3个盒子。

示例:

Underlay Extended Warranty

但我不想要这个:

Underlay

Extended Warranty

有解决方案吗?如果这令人困惑,我很抱歉,请记住,如果没有真正告诉我这个问题的问题是什么,请不要贬低。

更新

基本上,如果按照我所知的方式进行,就会发生这种情况:

Invoicing Screen

Actual Invoice

1 个答案:

答案 0 :(得分:0)

我通过制作一个自定义的Excel VBA宏来解决这个问题,它基本上告诉我们最接近发票顶部的免费单元格:

Public Function GetApplicableCell() As String
    Range("C20").Select
    If (IsEmpty(Range("'Invoice Sheet'!C20").Value)) Then
        GetApplicableCell = "C20"
    End If
    If (IsEmpty(Range("'Invoice Sheet'!C21").Value)) Then
        GetApplicableCell = "C21"
    End If
    If (IsEmpty(Range("'Invoice Sheet'!C22").Value)) Then
        GetApplicableCell = "C22"
    End If
    If (IsEmpty(Range("'Invoice Sheet'!C23").Value)) Then
        GetApplicableCell = "C23"
    End If
    If (IsEmpty(Range("'Invoice Sheet'!C24").Value)) Then
        GetApplicableCell = "C24"
    End If
End Function

可以从工作表中的=GetApplicableCell()调用它,我们可以使用它来生成可行的解决方案。