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

我使用的工具: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. 测试的rtsp地址

    无线城市 千里眼 http://218.204.223.237:8081/wap/show_video.php?vd=1  右键->复制链接地址即可获得Rtsp地址.

  2. bzoj 3275 Number(最小割)

    [题意] 给定n个数,要求选出一些数满足 1.存在c,a*a+b*b=c*c 2.gcd(a,b)=1  使得和最大. [思路] 二分图的最大权独立集(可以这么叫么QAQ 先拆点,对于不满足条件的两个 ...

  3. Binder机制

    在Android系统的Binder机制中,由一系统组件组成,分别是Client.Server.Service Manager和Binder驱动程序,其中Client.Server和Service Ma ...

  4. 07 java main方法

    1.问题:Java main方法为什么是  public static void main(String[] args)??? 序号 场景 编译 运行 解释 1 public修改为private pr ...

  5. HDU 4370 0 or 1 (最短路+最小环)

    0 or 1 题目链接: Rhttp://acm.hust.edu.cn/vjudge/contest/122685#problem/R Description Given a n*n matrix ...

  6. java volatile进阶(一)

    本篇文章继续学习volatile.上篇文章简单的介绍了volatile和synchonized,这篇文章讲一下什么时候可以用volatile. 先看一段代码. package com.chzhao.v ...

  7. Java IO (2) - OutputStream

    Java IO (2) - OutputStream 前言 JavaIO一共包括两种,一种是stream,一种是reader/writer,每种又包括in/out,所以一共是四种包.Java 流在处理 ...

  8. 用ALAssetsLibrary将过滤后图片写入照片库

    转载自:http://blog.sina.com.cn/s/blog_61235faa0100z3dp.html CIImage *saveToSave = [filter outputImage]; ...

  9. UVaLive 6859 Points (几何,凸包)

    题意:给定 n 个点,让你用最长的周长把它们严格包围起来,边长只能用小格子边长或者是小格子对角线. 析:先把每个点的上下左右都放到一个集合中,然后求出一个凸包,然后先边长转成题目的方式,也好转两个点的 ...

  10. win8图片默认不显示

    最近,发现了一个问题,在查看图片的时候,出现了这样的情况: 查看的时候很不方便,想要找到自己需要的图片就要误打误撞,也不知道自己在哪儿设置了,于是,上网查资料,才发现其实只需要简单的该一下设置就可以了 ...