-1

我在 Word 2013 和 2010 中运行,所以我可以使用在其中任何一个中工作的代码。我正在尝试创建一个 word 文档来跟踪我的食谱。在最基本的情况下,我希望有一个基于标题更新的目录。我还希望它有任何我想要的类别(例如:开胃菜、饮料、主菜等),按字母顺序排列。在每个类别下我都有表格。每个食谱都有一个表格,上面有它的名称、方向、注释、标签,可能还有一张图片。第二个单元格内部还有另一个两列表格,其中包含配方所需的每种成分的数量和名称。

到目前为止,我已经拥有了所有这些,并且我想自动添加新的类别和食谱。目前,我必须找到类别,然后向下滚动以按字母顺序查找名称的位置并插入我制作的快速表格。然后我填写信息。

我希望能够在文档中搜索每个类别名称,然后将新类别插入它所属的任何位置,前后各留一个空格。我发现如果我在所有东西之间没有空格,我的桌子会给我带来麻烦。它试图将它接触到的任何东西拉到表中并合并它们。

我想提供背景故事,这样你就会知道我最终会去哪里,并且可以提供更适合我需要的帮助。在我可以添加一个新类别之后,我计划使用 vba 按每个表的第一个单元格中的名称按字母顺序组织每个表。当我开始向它添加排序时,它也会有所帮助。最终,我希望能够将其分类为仅显示某个人的食谱,或者显示我经常使用的食谱。然后我让它要么隐藏所有其他人,要么只用这些创建一个新文档。所以感谢您的帮助。下面我将发布我最近尝试过的代码。我尝试了相同代码的其他一些变体,并不断得到“预期的语句结束”。在尝试它的其他变体时,我遇到了其他错误,但这是我自己能想到的最好的。

Private Sub UserForm_Initialize()
    For Each cat In ActiveDocument.Styles = "Heading 1"
        lstCat.AddItem (cat)
    Next
End Sub

我有一个名为 frmAddCategory 的表单用作测试。我将有一个列表框 lstCat 来显示带有样式标题 1 的每个类别。我有一个名为 txtAdd 的文本框来输入新的,还有一个 cmdAdd 按钮来将其添加到表单中。

编辑:在了解大纲视图模式后,我一直在玩我的宏记录器。我将其设置为仅显示“标题 1”级别并选择了我想要的级别,而不是选择附录或参考。然后我转到主页选项卡并按字母升序对段落进行排序。我得到了一些代码,我相信我可以用它来让它在 VBA 中运行。但是,这不是一个完整的修复,因为我不想选择带有标题 1 的最后两个。如果我手动选择每个标题 1 下的表格,它也可以工作,但我无法设置前后的间距。我希望每个标题和它们下面的表格之间有一个或两个空格,以用于外观和编辑目的。

另外,如果有人要给我的问题一个负面评价,那么请发表评论解释。据我从关于论坛的常见问题解答和我看到的其他问题中可以看出,这是一个很好的问题。一个清晰的标题,一个很好的问题解释,代码示例,研究。因此,如果我做错了什么,请通知我,以便我纠正。

4

1 回答 1

0

首先感谢您对宏记录器和大纲模式的介绍,我长期以来一直在尝试用两个 HeadingLevel(1) 标题之间的 selection.text 填充列表框。

现在到你的,对不起,我想不出办法。但是在Access中真的很容易。一个类别表,例如称为 tblCategories,另一个用于食谱 tblRecipes。为了使真正容易,当在所有表上使用 autoID 时。但是为了避免 tblRecipes 令人头疼的问题,将其 autoID 重命名为 RecipesID 与其他表相同。在食谱表中,您可以使用备注字段来保存大量数据。标题中的文本位置将放在 tblRecipes 的一个字段中。一旦您的表格希望为您要跟踪的每个项目提供一个字段。点击保存,然后使用向导创建基于表格的表格。对您希望将信息轻松放入任何表格的所有表格重复此操作。

1.reportTOC根据你想要的Every Heading的查询,可以随意预览或打印。reportByCategory 等报告按 a 到 z 排序,除非您想按所有者排序,然后配方所有自动排序 a - z。

报告向导以获取硬拷贝。如果你想很容易地排序,内置的。如果你想能够为假期挑选所有食谱真的很容易,一张桌子 tblHolidays。一个 tblHolidayRecipes 字段 autoId(您不会在任何地方使用但需要)、fldRecipesId(保存 RecipesId)、fldHolidayId(保存 HolidayId)。该向导将展示如何只获得您想要的东西。在 access 2013 中,您可以包含食物的像素或。

于 2015-03-31T21:45:23.867 回答