上周派到了个case, 是批量从Excel导出数据导Visio每个图形中.

花了些时间实现了这个功能.

原理如下:

  1. 打开Excel
  2. 新建/打开表单
  3. 指向所选择的表单
  4. 遍历所在列的所有数据
  5. 打开Visio
  6. 建立/打开Visio页面(Visio是和Excel一样, 需要建立指定页面.)
  7. 指向所选择的Visio页面.
  8. 打开diagram service 服务
  9. 遍历所有数据在新的图形中做文字.

代码如下:

Sub Test11()

Dim rowCount As Long
Dim sourceSheet As Worksheet
Dim targetWorksheet As Worksheet
Dim copyTimes As Integer
Dim vsoPage As Page Set sourceSheet = Worksheets("Sheet1")
Dim FName As String
Dim VsApp As Object On Error Resume Next
Set VsApp = GetObject(, "Visio.Application")
If VsApp Is Nothing Then
Set VsApp = CreateObject("Visio.Application")
If VsApp Is Nothing Then
MsgBox "Can't connect to Visio"
Exit Sub
End If
End If
On Error GoTo FName = "D:\drawing.vsdm" VsApp.Documents.Open FName
VsAppPage = "Page-1"
VsApp.ActivePage = VsAppPage
Cancel = True 'Enable diagram services
Dim DiagramServices As Integer
DiagramServices = VsApp.ActiveDocument.DiagramServicesEnabled
VsApp.ActiveDocument.DiagramServicesEnabled = visServiceVersion140 + visServiceVersion150 For i = To sourceSheet.UsedRange.Rows.Count
'MsgBox sourceSheet.Cells(i, 1).Value VsApp.Application.Windows.ItemEx("drawing.vsdm").Activate
VsApp.ActivePage.Drop VsApp.Application.Documents.Item("BASIC_U.VSSX").Masters.ItemU("Square"), 3.128788, 9.25
Set vsoCharacters1 = VsApp.ActiveWindow.Selection().Characters
vsoCharacters1.Begin =
vsoCharacters1.End =
vsoCharacters1.text = sourceSheet.Cells(i, 1).Value
Next sourceSheet.Activate End Sub

VBA: 怎样批量数据从Excel派出到Visio的更多相关文章

  1. Excel VBA ——如何导出数据到excel表格

    sub OutPut() Dim FileTitle, MyPath, MyFullName As String Application.ScreenUpdating = false '关闭表格公式的 ...

  2. 批量数据的Excel导入

    public void importIndexHistoryByCsv(String fileName) { logger.info("开始获取Csv文件导入到数据库,csv文件名为:&qu ...

  3. Excel vba:批量生成超链接,添加边框,移动sheet等

    Excel vba 操作 批量生成sheet目录并添加超链接 Sub Add_Sheets_Link() 'Worksheets(5)为清单目录页 '在sheet页上生成sheet页名字并超链接 To ...

  4. 使用PHPExcel实现数据批量导出为excel表格

    首先需要下载PHPExecel类文件,帮助文档可以参考PHPExcel中文帮助手册|PHPExcel使用方法. 下面直接上例子,是我自己写的一个简单的批量导出数据为excel的例子 前台页面 比较简单 ...

  5. VBA中数据库导出数据到Excel注意事项

    Sub ReadDBData() On Error GoTo ErrorHand Dim dbHelper As New dbHelper Dim sqlSQL As String Dim rs As ...

  6. BDC、CATT批量数据维护

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  7. 用VBA计算WPS 表格ET EXCEL中的行数和列数的多重方法

    用VBA计算WPS 表格ET EXCEL中的行数和列数 每种方法中上面的是Excel的行数,下面的是Excel的列数. 方法1: ActiveSheet.UsedRange.Rows.Count Ac ...

  8. C#通过OLEDB导出大数据到Excel

    C#导出数据到Excel,基本有两种方法,一种方法是通过Microsoft.Office.Interop.Excel.Application,一行一列的写入Excel中:另一种方法是通过OLEDB,利 ...

  9. 分享一个导出数据到 Excel 的类库

    起源: 之前在做一个项目时,客户提出了许多的导出数据的需求: 导出用户信息 导出业务实体信息 各种查询都要能导出 导出的数据要和界面上看到的一致 可以分页导出 ... 为了应对用户的这些需求,我决定先 ...

随机推荐

  1. 重载的方式写Python的get请求

    #encoding=utf-8#__author__="Lanyangyang" import unittestimport requestsimport json # This ...

  2. python笔记2-变量

    变量 存东西所用 #定义变量 name='feifei'#定义变量,字符串 age=18.9#整型或者小数定义变量不需要加引号 print(name) print(age) name2="w ...

  3. 杭电1004 ac code

    #include <stdio.h> #include <string.h> #include <stdlib.h> #define STR_LEN 256 str ...

  4. 201621123001 《Java程序设计》第14周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结与数据库相关内容. Mysql数据库简单操作,常用的操作命令 启动:进入Mysql (从命令行mysql -u root -p) 退 ...

  5. 201621123001 《Java程序设计》第12周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 字节流以字节为基本处理单位,字符流以字符为基本处理单位,以Reader和Writer为基础派生出的一系列类 字 ...

  6. 201621123001 《Java程序设计》第10周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集 异常 1. 常用异常 结合题集题目7-1回答 1.1 自己以前编写的代码中经常出 ...

  7. Ionic2开发环境搭建、项目创建调试与Android应用的打包、优化

    Ionic2开发环境搭建.项目创建调试与Android应用的打包.优化. windows下ionic2开发环境配置步骤如下: 下载node.js环境,稳定版本:v6.9.5 下载android stu ...

  8. Linux文件系统命令 rm

    命令名:rm 功能:删除某一个文件或者目录 eg: renjg@renjg-HP-Compaq-Pro--MT:~/WorkSpace$ ls BM3 gf k8s minicom_download ...

  9. ios中scrollView基本用法

    设置scrollView内容的尺寸(滚动的范围) self.scrollView.contentSize = CGSizeMake(, ); self.scrollView.contentSize = ...

  10. 如何HACK无线家用警报器?

    30年前,报警器都是硬连线的,具有分立元件,并由钥匙开关操作.20年前,他们已经演变为使用微控制器,LCD和键盘,但仍然是硬连线.10年前,无线报警器开始变得普及,并增加了许多之前没有的功能. 而如今 ...