我想创建一系列事件,以与 Excel 中的下拉列表相对应。例如
在 Excel 的标题“设备室”中,您可以从列表中选择热水缸的尺寸和类型。
选定后,组件列表会填充到其他地方 - 可能是另一个选项卡上。浴室、淋浴和散热器的基本元素也是如此(设计会有所不同,但基本阀门、水龙头等是相同的)。
另一个标签上会出现客户成本的摘要,包括零件和人工的 15% 加价,这也记录为该工作成本的一部分。
一旦所有的基本信息都已存入,我们就可以修改和更改元素,然后这些信息将很容易地导出到设计精美的 word 文档中,其中包括有关保修、条款和条件、合规性等的信息
我知道其中一些可以通过宏实现,但我不知道要搜索什么术语,而且我是个业余爱好者。
谢谢
答案1
您问从哪里开始,所以我会回答其中的一些问题。我们无法为您创建整个文件,但这可以让您稍微入门,然后您可以回来询问有关流程某一步骤的具体问题。
在 Excel 的标题“设备室”中,您可以从列表中选择热水缸的尺寸和类型。
如何制作下拉列表。(如果该链接失效了,我相信你可以通过网络搜索找到类似的说明。)我建议使用将尺寸和类型合并为一个列表的单一列表(“40 加仑汽油”),而不是一个列表列出尺寸,另一个列表列出类型。这样使用起来会更容易。
选定后,组件列表会填充到其他地方 - 可能是另一个选项卡上。浴室、淋浴和散热器的基本元素也是如此(设计会有所不同,但基本阀门、水龙头等是相同的)。
宏确实可用于在某个单元格发生更改时执行某些操作。下面是实现此操作的一个示例。此代码将存在于工作表对象中(而不是工作簿对象或模块中),并且会在任何单元格发生更改时触发,但仅在单元格A1
发生更改时执行一些有趣的操作。也许搜索“vba 入门“或其他东西。您还可以通过将所有定价数据放在一个大表中并使用FILTER()
或其他东西,用公式来完成所有这些操作。
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
' Go do macros things because that special cell was changed
End If
End Sub
您可能需要考虑让用户填写他们想要定价的物品的整个列表,然后按下按钮让宏运行该列表并逐行添加每个物品的组件/人工。我可能会让该宏在删除每个物品时清除列表,以防止用户意外单击按钮两次并添加所有内容再次。
另一个标签上会出现客户成本的摘要,包括零件和人工的 15% 加价,这也记录为该工作成本的一部分。
如果您在宏更改的选项卡上设置数据的方式始终一致,那么您可能可以使用公式来实现这一点。如果您愿意,也可以将其嵌入到宏本身中。
一旦所有的基本信息都已存入,我们就可以修改和更改元素,然后这些信息将很容易地导出到设计精美的 word 文档中,其中包括有关保修、条款和条件、合规性等的信息
Word 有自己的 VBA 对象、方法等。这是一个大问题。这是第一个热门来自我的基本网络搜索。从概念上讲,我认为你可以从一个包含漂亮标题、保修和其他任何你喜欢的内容的 word 文件开始。为要从 Excel 复制的每一位数据添加一个占位符。例如,它可以包含文字文本[TOTAL COST]
。Excel 中的 VBA 将复制该文件,打开它进行编辑,然后使用 Excel 文件中的值查找/替换占位符文本。这只是一个想法。
一次完成一个部分。如果你在某个步骤上卡住了,先试着自己找到解决方案。如果你想不通,也想不出为什么如果你不明白,可以回来问