我需要帮助来创建报价单

我需要帮助来创建报价单

让我试着解释一下我想要实现的目标。假设报价单上有 40 个选项。客户只想要其中的八个选项。我想为八个选定项目中的每一个输入数量,并隐藏(不打印)其他未选定项目。

我确信有词可以形容这种情况,但我想不出是什么词。我不太懂技术,所以如果您能提供任何帮助,我将不胜感激。

答案1

为您设计应用程序超出了答案的范围,但我可以为您提供一种方法,然后如果您对如何执行特定操作有疑问,可以将其作为附加问题提出。有很多方法可以做您想做的事情。我将描述一种仅使用常用函数,不使用宏或 Visual Basic,并且不是特别抽象或复杂的方法(至少相对于其他方法而言)。

方法是创建第二个工作表,根据输入表单的内容构建要打印的内容。它就像一个模板。这要求输入表单上的选项是统一的,以便任何选项都可以插入模板上的任何位置。

输入表格

使选项的布局统一,就像表格一样。所有内容都放在相同的描述列中,理想情况下,每个选项占用一行。您可以使用多行,但这会增加一层复杂性。如果内容的长度差异很大,您可以使用多种方法。

  • 将描述细节或其他冗长的文本放在单独的参考文档中,只将简短版本作为表单的一部分。可以将整个参考文档附加到打印输出中,或者您可以使用与此类似的方法构建仅包含相关项目的参考文档。

  • 使用自动换行(这会导致打印输出中的选项之间出现不同的间隙,因为除非您花哨,否则模板需要容纳最大的条目)。

  • 使用多行。由于输入表单是预定义的,因此您可以通过将行数存储在每个选项的隐藏单元格中来避免使用函数来计算行数。但是,处理多行会使解决方案变得更加复杂。

打印模板

您创建第二张表,该表与输入表单的布局相同。计算出人们想要的最大选项数量,并在计数中添加几个选项以保证万无一失。这就是您创建的模板条目数量(您始终可以通过复制/粘贴添加更多条目)。

在隐藏列中,您可以放置​​一个查找函数来查找下一个可打印选项。第一个条目查看输入表单中的所有行,以查找数量大于零的第一个行并存储该行号。第二个条目从上一个条目之后的条目开始查找输入表单,直到最后一个条目,并存储它在该范围内找到的第一个非零选项的行,依此类推。当打印模板用完非零选项时,您将收到错误代码或零,这没问题。

这是通过查找函数和间接地址(即使用一个单元格的内容在其他地方查找内容)来实现的。这样您就可以在每个单元格中使用相同的通用公式。以下是查找和引用函数的几个参考链接:参考文献1参考文献2

现在,模板中的每个条目都有一个指向输入表单上的行或错误代码的索引。在内容列中,如果索引是错误代码(或零,取决于索引公式返回的内容),则使用公式放置空白或空字符,否则放置索引给出的行的输入表单上关联单元格的内容。同样,这使用查找/引用函数和间接地址。

可以通过合并针对行本身的额外查找和计算来处理多行并补偿额外的行。

一步一步构建并调试以获得您期望的结果,然后使用该结果构建下一步。例如,在尝试将其合并到内容公式中之前,先让索引公式正常工作。间接寻址和查找函数可能会有点复杂,因此请从内到外逐个构建它们。创建一个简单的公式,它是您所需的一部分,并验证它是否正常工作。然后在公式的下一个“层”中使用它,依此类推。

相关内容