使用VBA代码将表格从Excel复制到Word书签

2024-01-04

我实际上需要你帮助修改这个宏代码。我从其他地方得到了这个代码(抱歉,忘记了他的名字!)。基本上,我有来自 Excel Sheet1 的表数据源。我需要将该表传输到 MS Word,同时保留边框、字体大小、自动调整等格式,并使用名为“书签”的书签。 需要注意的是:

  1. 书签的位置位于最后一段。我的 Word 文件中有超过 12 段,但表格应放在最后一段。
  2. 请注意,表数据源中的行数和列数是动态的。这意味着,行数和列数不固定。它可以改变。我现有的宏代码适用于此。但是,它完全删除了现有段落。这张桌子取代了我档案中的所有内容。我不知道将该表放置到书签所在位置的确切宏代码。

感谢您对第 2 项的帮助。以下是代码:


Private Sub CommandButton1_Click()
On Error Resume Next

    ' FIRST GET THE ROWS COLUMNS OF A USED RANGE.

    Dim iTotalRows As Integer   ' GET TOTAL USED RANGE ROWS.
    iTotalRows = Worksheets("sheet1").UsedRange.Rows.Count


    Dim iTotalCols As Integer   ' GET TOTAL COLUMNS.
    iTotalCols = Worksheets("sheet1").UsedRange.Columns.Count



    ' WORD OBJECT.
    Dim oWord As Object
    Set oWord = CreateObject(Class:="Word.Application")
    oWord.Visible = True
    oWord.Activate

    ' ADD A DOCUMENT TO THE WORD OBJECT.
    Dim oDoc
    Set oDoc = oWord.Documents.Open("C:\Macro\samplebookmark1.docx")


    ' CREATE A RANGE FOR THE TABLE INSIDE WORD DOCUMENT.
    Dim oRange
    Set oRange = oDoc.Range


    ' CREATE AND  DEFINE TABLE STRUCTURE USING
        ' THE ROWS AND COLUMNS EXTRACTED FROM EXCEL USED RANGE.
    oDoc.Tables.Add oRange, iTotalRows, iTotalCols


    ' CREATE A TABLE OBJECT.
    Dim oTable
    Set oTable = oDoc.Tables(1)
    oTable.Borders.Enable = True      ' YES, WE WANT BORDERS.


    Dim iRows, iCols As Integer


    ' LOOP THROUGH EACH ROW AND COLUMN TO EXTRACT DATA IN EXCEL.
    For iRows = 1 To iTotalRows
        For iCols = 1 To iTotalCols
            Dim txt As Variant
            txt = Worksheets("Sheet1").Cells(iRows, iCols)
            oTable.cell(iRows, iCols).Range.Text = txt        ' COPY (OR WRITE) DATA TO THE TABLE.


            ' BOLD HEADERS.
            If Val(iRows) = 1 Then
                objTable.cell(iRows, iCols).Range.Font.Bold = True
            End If
        Next iCols
    Next iRows

    Set oWord = Nothing
End Sub

问题出在这一行内:

Set oRange = oDoc.Range

就像现在一样,它定义整个文档范围而不是书签范围。
你应该使用类似的东西:

Set oRange = oDoc.Bookmarks("BookmarkName").Range

Concerning your new problem, one way to fix it is to put table directly into document's last paragraph without using a bookmark.
Set oRange = oDoc.Range.Paragraphs(oDoc.Range.Paragraphs.Count).Range
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用VBA代码将表格从Excel复制到Word书签 的相关文章

  • xlwings: 删除一个列 | Excel 中的行

    如何删除 Excel 中的一行 wb xw Book Shipment xlsx wb sheets Page1 1 range 1 1 clear clear 用于删除内容 我想删除该行 我很惊讶 clear 函数有效 但 delete
  • Word 2016 插件:检测文档保存

    我正在开发一个 Word 2016 插件 Word API Office js 我想知道是否可以在用户即将保存文档时收到通知 该文档作为 LOB 存储在应用程序的数据库中 在临时路径上提取并在 Word 中作为普通文件打开 我需要为 保存
  • 如何使用 Nodejs 创建 Excel 文件?

    我是一名 Nodejs 程序员 现在我有一个数据表 我想将其保存为 Excel 文件格式 我该怎么做呢 我找到了一些 Node 库 但其中大多数是 Excel 解析器而不是 Excel 编写器 我使用的是 Linux 服务器 因此需要一些可
  • VBA Shell 并等待退出代码

    我正在打包一个办公应用程序 VBA 它调用 C 控制台应用程序来执行应用程序 大型模拟程序 的一些繁重工作 我希望能够让 VBA 应用程序等待控制台应用程序完成并从控制台应用程序检索退出代码 我已经能够做到前者 但尚未能够从应用程序中检索退
  • VBA 中的多线程

    这里有人知道如何让VBA运行多线程吗 我正在使用 Excel 无法用 VBA 本地完成 VBA 构建在单线程单元中 获得多个线程的唯一方法是使用 VBA 之外的其他具有 COM 接口的东西构建 DLL 并从 VBA 调用它 信息 OLE 线
  • 如何在 Excel 中对一组数据进行排序以匹配另一组数据?

    我有一个不按字母或数字顺序排列的数据列表 我想对同一日期的第二个列表进行排序以匹配第一个列表 我无法更改数据的顺序 我的目标是将第二组中的附加数据粘贴回第一个数据集中 DATA SET A DATA SET B 22350 BH160 10
  • 使用 ObjPtr(Me) 返回自定义类实例的名称?

    我明白那个ObjPtr http support microsoft com kb 199824将返回内存中对象的地址 并且它指向一个名为 IUNKNOWN 的结构 并且其中编码了某种接口定义以公开对象结构 但我不知道如何确定一个对象的接口
  • 将包含宏的工作簿复制到不带宏的工作簿

    我能够复制工作簿 复制到所需位置 其中在后台包含宏 该副本还包含相同的宏 我的问题是我不希望这个重复的工作簿包含宏 谁能告诉怎么做吗 先感谢您 将您的工作簿保存为无宏 即简单地保存为 Excel 工作簿 对于我的 Excel 2007 这是
  • VBA 中的匈牙利语好吗?

    我在 Net 中不使用匈牙利语 str int 前缀 但我仍然发现它在 VBA 中很有用 因为在 VBA 中很难看到类型 这很糟糕吗 不必要 也许我错过了一些东西 我真的很感激任何反馈 我想知道有一段时间了 谢谢大家 我想说 这种匈牙利符号
  • 如何等到 Excel 计算公式后再继续 win32com

    我有一个 win32com Python 脚本 它将多个 Excel 文件合并到电子表格中并将其另存为 PDF 现在的工作原理是输出几乎都是 NAME 因为文件是在计算 Excel 文件内容之前输出的 这可能需要一分钟 如何强制工作簿计算值
  • VBA ByRef 参数类型不匹配

    最初在我的主代码部分中 我有一个丑陋的 if 语句 尽管它会运行丑陋 我决定将其设为我要调用的函数 这导致我收到错误 编译错误 ByRef 参数类型不匹配 我的假设是该函数需要正确引用 尽管我一直在阅读文档并且不明白为什么 gt 声明 Sh
  • 如何在Power Query中对N列求和

    我的数据每月都会更新 因此我尝试创建一个强大的查询表 该表将显示我创建的枢转 N 列的总和 但我似乎不知道如何在强大的查询中执行此操作 我目前有这个代码 旋转后 创建要求和的列的列表 添加索引列以限制每行 添加一列 该列对该行的列进行求和
  • 两个日期之间的小时数在 Excel 中不起作用

    根据要求 我提供了一张简化的屏幕截图来说明该问题 如您所见 我减去了两个日期并将其格式化为 h mm ss 为什么这不能提供两个日期之间经过的总小时数 有一个更好的方法吗 下面有一个很好的答案 但我试图弄清楚为什么按照此屏幕截图中所示的方式
  • 在 PYTHON 中读取 EXCEL 时,“utf-16-le”编解码器无法解码字节

    我正在尝试读取不同语言 阿拉伯语 希腊语 意大利语 希伯来语等 的各种数量的 xls 文件 当我尝试调用 open workbook 函数时 出现如下所示的错误 不知道如何将格式设置为任何语言 Code book xlrd open wor
  • Excel 2003 中的 IFERROR

    我通过阅读几个线程了解到IFERROR在 Excel 2003 中由IF ISERROR 我尝试从 Excel 2007 复制的代码是 IFERROR A1 我知道必须有一个简单的解决方案将其转换为IF ISERROR 但我没有任何效果 意
  • 使用 ADODB 连接从关闭的工作簿中检索数据。某些数据被跳过?

    我目前正在编写一些代码 可以通过 ADODB 连接访问单独的工作簿 由于速度的原因 我选择了这种方法而不是其他方法 下面是我的代码 Sub GetWorksheetData strSourceFile As String strSQL As
  • 如何在 Excel 中对“高”字符进行 HTML 编码或音译?

    在 Excel 中 如何将包含重音字符 大引号等的单元格内容转换为相同字符的 HTML 或音译纯文本版本 我们有一个 XLS 文档 其中包含一些 高 字符 数据已通过数据库连接提取 并且 Excel 似乎正确处理不同代码页中的各个单元格 或
  • 使用 VBScript 在日期字段值上选择错误的数据

    我有一张包含以下数据的表 现在 Excel 共有 36 个任务 每个任务有 4 列 第一个任务 即 Task1 名称将始终从 L 列开始 144 列描述了 36 个任务 现在我们需要按行进行检查 并需要检查 TNStart 开始日期 你们能
  • 如何使用vba复制Excel工作表中的动态范围

    我试图使宏中的范围是动态的 而不指定最后一行x Sheets SheetName Range A2 K1000 Copy在 1000 行中 我想将其更改为动态 因为有时我的数量会更少或更多 尝试这个 Sub Test Dim lRow as
  • 使用 XMLHTTP 进行抓取会在特定类名处引发错误

    我正在尝试使用此代码抓取网站以提取姓名和联系人 Sub Test Dim htmlDoc As Object Dim htmlDoc2 As Object Dim elem As Variant Dim tag As Variant Dim

随机推荐

  • 如何知道 uitableview 是否有选定的单元格

    我正在开发一个应用程序 有时我有几个 uitableview 我想知道委托方法之外的操作 例如表视图是否有选定的单元格以及是哪个单元格 我尝试使用 NSIndexPath indexPathForSelectedRow但它不起作用 因为如果
  • 通过选项选择更新 SVG

    我正在尝试获取 SVG 中的文本元素以通过选项更改进行更新 搜索后 我已经能够到达 在控制台中 在页面初始加载期间以及选项更改时看到选项更改的位置 但我未能成功更改数字 任何帮助 将不胜感激
  • VIM 中更好的自动完成功能

    All 我使用 vim 已经有一段时间了 并且喜欢它的一切 我真正怀念 RubyMine 这样的 IDE 中只有一件事 那就是高级自动完成功能 作为参考 这是我的标准 VIM 设置 https github com wrwright vim
  • 如何在 spring mvc 中提供静态内容?

    我在当前的项目中使用 spring mvc 框架 ROOT文件夹有很多包含html jsp css js等的web文件夹 我的spring mvc配置如下
  • UIScrollView 如何更改框架而不更改边界? UIScrollView 是如何工作的?

    我理解框架和边界之间的区别 我认为 边界是视图的本地坐标系 而框架是超级视图 然而 对于滚动视图 我有点困惑 当我在 UIScrollView 中有一个 UIImageView 并将其放大时 似乎框架变大 宽度和高度 也会增加相应 UIIm
  • 在 google 地图中查找给定点 5 公里半径范围内的位置

    嘿 我只是想收集谷歌地图数据库中给定点 5 公里半径以下的位置 我会将它们存储在数据库中以供以后处理 这可以完成吗 谢谢 如何获取所需圆内点的经度和纬度 您可以使用地点搜索 http code google com intl fr apis
  • 有没有办法通过作业名称获取 Quartz 中的作业密钥

    现在我正在寻找在 Quartz 库中通过作业名称获取作业密钥的功能 我看到Scheduler有方法通过组名称获取作业密钥GroupMatcher
  • Android 中是否有 API 支持以编程方式进行电话会议?

    我想通过从我的应用程序中选择一些联系人来进行电话会议 可以吗 电话会议中的设备数量是否有限制 有没有 Android SDK 支持 任何版本都适合我吗 请提供一些意见 提前致谢 您无法使用智能手机管理会议 您需要一个可以为您完成此操作的中间
  • django 脆皮形式 内联表单

    我正在尝试采用脆形式和引导程序 并尽可能多地使用它们的功能 而不是一遍又一遍地发明一些东西 有没有一种方法可以像 django admin 表单那样使用 Cripy forms bootstrap 来实现内联表单功能 这是一个例子 clas
  • 如何在 Perl 中连接两个散列而不使用循环?

    如何在 Perl 中将哈希 a 附加到哈希 b 而不使用循环 如果您的意思是合并他们的数据 只需执行以下操作 c a b
  • 如何在Python中用单反斜杠替换双反斜杠? [复制]

    这个问题在这里已经有答案了 我有一根绳子 该字符串中有双反斜杠 我想用单反斜杠替换双反斜杠 以便可以正确解析 unicode 字符代码 Pdb p fetched page p style text align center align c
  • 在 Android Studio 中导入 Facebook 库:找不到属性“ANDROID_BUILD_SDK_VERSION”

    我想将库项目导入到我的应用程序中 但每当我尝试这样做时 Android Studio 都无法识别它 它还在 build gradle 中给了我错误 该库是 PagerSlidingTabStrip 以下是一些图片 到目前为止我已经尝试了三天
  • .NET StringBuilder 在前面添加一行

    我知道System Text StringBuilder在 NET中有一个AppendLine 方法 但是 我需要在 a 的开头预先附加一行StringBuilder 我知道你可以使用Insert 附加一个字符串 但我似乎无法用一行来做到这
  • @Scheduled 方法内部的 Spring @Async 方法调用

    我正在使用 Spring boot EnableScheduling and EnableAsync 我有一个注释为的方法 Scheduled 我还有几个方法 注释为 Async 现在我称这些为 Async中的方法 Scheduled方法并
  • 在Powershell中使用Import-CSV,忽略注释行

    我认为我一定错过了一些明显的东西 因为我正在尝试使用 Import CSV 导入已在文件顶部注释掉行 始终以 作为第一个字符开头 的 CSV 文件 因此文件看起来像这样 SpecialCSV Version 1 0 0 Table Head
  • R,dplyr:如果每组只有一个唯一的非 NA 元素,则按组折叠字符变量元素

    假设我有以下 data framedf患者家乡和一项任意临床指标 心率 id lt c rep 1 3 each 2 rep 4 3 pt hometown lt c Atlanta NA NA San Diego NA NA San Fr
  • 使用 AWS Glue 或 PySpark 过滤 DynamicFrame

    我的 AWS Glue 数据目录中有一个名为 mytable 的表 该表位于本地 Oracle 数据库连接 mydb 中 我想将生成的 DynamicFrame 过滤为仅 X DATETIME INSERT 列 时间戳 大于特定时间 在本例
  • 在 Spring Data REST+HATEOAS 中删除 REST 关联

    我想知道如何通过 REST 调用删除多对多关联 我能够创建记录并将它们关联起来 但不知道如何删除 我有一个 Spring Boot 项目 其中使用 REST 和 HATEOAS 来绕过服务和控制器并直接公开我的存储库 我有一个用户模型 域类
  • 简单的 Haskell 循环

    我刚刚开始学习 Haskell 但现在缺少循环令人无限沮丧 我弄清楚了如何为函数编写循环 然而 我的问题是我想在迭代循环时输出一些结果 看来我必须使用调试来执行这个简单的任务 所以现在我只想看一个如何在主结构中打印 10 次字符串的示例 换
  • 使用VBA代码将表格从Excel复制到Word书签

    我实际上需要你帮助修改这个宏代码 我从其他地方得到了这个代码 抱歉 忘记了他的名字 基本上 我有来自 Excel Sheet1 的表数据源 我需要将该表传输到 MS Word 同时保留边框 字体大小 自动调整等格式 并使用名为 书签 的书签