根据网上例子结合自己的工具环境修改后测试可以通过

我使用的工具:Microsoft Visual Studio 2010,Excel 2007

一、在D盘新建一个temp文件夹用于存放Excel启动时写入标志,关闭时删除标志,vb.net程序会去查询该标志来知道Excel是否被人为打开或关闭了。

  避免和程序的控制脱节。

二、在D盘根目录创建一个Excel,按Alt+F11打开代码编辑窗口,插入一个模块,填入如下代码:

Sub auto_open()  'Excel启动时会自动运行这个宏
Open "d:\temp\excel.bz" For Output As #1 '写标志文件
Close #1
End Sub
Sub auto_close()  ''Excel关闭时会自动运行这个宏
Kill "d:\temp\excel.bz" '删除标志文件
End Sub

然后另存为带宏的Excel,存在D盘根目录,命名为xiao。之后可以看到D盘有一个xiao.xlsm文件,图标上会有一个感叹号,表示是带宏的Excel。

三、打开Microsoft Visual Studio 2010,新建一个Windows窗体应用程序,工程名命名任意。在默认的From1上拖进两个Button,Text属性设置为open,close。右击工程添加引用,选择COM下的Microsoft Excel 12.0 Object Library组件,并插入如下代码:

Imports Microsoft.Office.Interop

Public Class Form1
    Dim xlApp As Excel.Application '定义EXCEL类  
    Dim xlBook As Excel.Workbook '定义工件簿类 
    Dim xlsheet As Excel.Worksheet '定义工作表类

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If Dir("D:\temp\excel.bz") = "" Then '判断EXCEL是否打开
            xlApp = CreateObject("Excel.Application") '创建EXCEL应用类
            xlApp.Visible = True '设置EXCEL可见 (xlApp.Visible = False '设置EXCEL打开时不可见 )
            xlBook = xlApp.Workbooks.Open("D:\xiao.xlsm") '打开EXCEL工作簿 
            xlsheet = xlBook.Worksheets(1) '打开EXCEL工作表
            xlsheet.Activate() '激活工作表 
            xlsheet.Cells(1, 1) = "abc" '给单元格1行驶列赋值 
            xlBook.RunAutoMacros(Excel.XlRunAutoMacro.xlAutoOpen) '运行EXCEL中的启动宏 
        Else : MsgBox("EXCEL已打开")
        End If
    End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        If Dir("D:\temp\excel.bz") <> "" Then '由VB关闭EXCEL   
            xlApp.Application.DisplayAlerts = False '关闭EXCEL的警告提示,不然用程序关闭时会有警报提示,还要手动去确定。
            xlBook.RunAutoMacros(Excel.XlRunAutoMacro.xlAutoClose) '执行EXCEL关闭宏 
            xlBook.Close(True) '关闭EXCEL工作簿 
            xlApp.Quit() '关闭EXCEL 
        End If
        xlApp = Nothing '释放EXCEL对象 
        End
    End Sub
End Class

四、按F5执行程序,点open控件可以看到Excel被打开第一个格子里被写入abc。点击close关闭Excel。

vb.net向Excel中写入值的更多相关文章

  1. POI向Excel中写入数据及追加数据

    import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import ...

  2. Python向excel中写入数据的方法 方法简单

    最近做了一项工作需要把处理的数据写入到Excel表格中进行保存,所以在此就简单介绍使用Python如何把数据保存到excel表格中. 数据导入之前需要安装 xlwt依赖包,安装的方法就很简单,直接 p ...

  3. Java 打开Excel,往Excel中存入值,保存的excel格式分别是xls和xlsx

    https://mirrors.cnnic.cn/apache/poi/xmlbeans/release/src/ package Excel; import org.apache.poi.hssf. ...

  4. C#/VB.NET 获取Excel中图片所在的行、列坐标位置

    本文以C#和vb.net代码示例展示如何来获取Excel工作表中图片的坐标位置.这里的坐标位置是指图片左上角顶点所在的单元格行和列位置,横坐标即顶点所在的第几列.纵坐标即顶点所在的第几行.下面是获取图 ...

  5. Python 使用 xlwings 往 excel 中写入一行数据的两种方法

    该方法跟上一篇写入一列的方法相反,代码如下: # -*- coding:utf-8 -*- import xlwings as xw list1 = [1,2,3,4,5] list2 = [[1], ...

  6. Python 使用 xlwings 往 excel中写入一列数据的两种方法

    1.准备一个二维列表,然后再range后面不指定任何选项,可以输出该二维列表中数据在一列中显示,如下代码: # -*- coding:utf-8 -*- import xlwings as xw li ...

  7. AutoIT: 如何从excel中取值并判断条件?

    #include <Excel.au3> $excel = _ExcelBookAttach("Book1.xlsx" ,"FileName") ; ...

  8. python 从Excel中取值

    import openpyxl from openpyxl import load_workbook def open_file(file_path): workbook = load_workboo ...

  9. java poi 写入大量数据到excel中

    最近在利用poi往excel中写入大量数据时,发现excel2003最多只支持65535条,大量数据时容易造成oom,上网查了一下api,发现目前对于2003,每个sheet最多支持65535条,若数 ...

随机推荐

  1. 线性模型(3):Logistic Regression

    此笔记源于台湾大学林轩田老师<机器学习基石><机器学习技法> (一)Logistic Regression 原理 对于分类问题,假设我们想得到的结果不是(x属于某一类)这种形式 ...

  2. php里面为什么header之前有输出报错 源码分析

    众所周知,php 里面 header之前有输出的话,会报错,例如下面这样   就这个错误,我们开始查阅php源代码,到底是怎样做的,至于php源代码分析,安装,和调试时怎样配置的,我会专门写一篇文章去 ...

  3. MFC工程目录

    如果已经以Debug方式编译链接过程序,则会在解决方案文件夹下和工程子文件夹下各有一个名为“Debug”的文件夹,而如果是Release方式编译则会有名为“Release”的文件夹.这两种编译方式将产 ...

  4. [Hive - LanguageManual] Sampling

    Sampling Syntax Sampling Bucketized Table Block Sampling Sampling Syntax  抽样语法 Sampling Bucketized T ...

  5. windows下安装和配置Weka

    Weka是一款免费的,非商业化的,基于java环境下的开源的机器学习以及数据挖掘软件.Weka里含有各种数据挖掘工具:数据预处理,分类与回归,聚类,关联规则和可视化工具. 一.安装weka 我们首先需 ...

  6. CentOS上firefox安装flash

    CentOS下firefox安装flash说明 CentOS下自带了firefox,但没有flash插件的,按它自己的提示安装不成功,需要手动安装,如下: 1.打开flash官网,http://lab ...

  7. emacs资源

    当clone github时若连接不上,可以使用http代理,形如:export http_proxy=61.172.249.94:80一年成为emacs高手:      https://github ...

  8. 搭建linux下teamspeak3多人语音服务器

    最近项目中新的需求,需要支持多人在线实时通话.就安装测试一下teamspeak.http://www.teamspeak.com/ 主页有服务器版本和客户端版本供下载安装.软硬件环境: melot@m ...

  9. JDBC学习笔记(2)——Statement和ResultSet

    Statement执行更新操作 Statement:Statement 是 Java 执行数据库操作的一个重要方法,用于在已经建立数据库连接的基础上,向数据库发送要执行的SQL语句.Statement ...

  10. hdu 1689 Just a Hook

    http://acm.hdu.edu.cn/showproblem.php?pid=1698 Just a Hook Time Limit: 4000/2000 MS (Java/Others)    ...