VBA操作Excel

几个小知识:

  1、设置单元格格式:

      sht.Cells(4, pCol).NumberFormatLocal = "yyyy-mm-dd hh:mm:ss"

      其中文本格式为:"@",常规格式为:G/通用格式

  2、设置单元格为自动列宽或自动高度:

       #1、VBA自动生成的代码为:Columns("A:D").EntireColumn.AutoFit

      #2、但是字母的A到D,我们在VBA中不方便取到,一般都是数据,所以使用

          Range(Cells(1, 1), Cells(1, 40)).EntireColumn.AutoFit-----(这种方式是按照某一行的格式去适应的)

        或者、Range(Columns(1), Columns(40)).EntireColumn.AutoFit

  3、关于DoEvents事件:

     这个用的不好,只做记录,

      如下代码:

Public Sub getTableKey()
    Dim strKey As String
    Dim sql As String
    Dim strTableName As String
    Dim strPK As String
    ‘ 提示框标识
    Dim bln As Boolean: bln = False
    ‘SQL
    sql = "select a.column_name from user_cons_columns a, user_constraints b  where a.constraint_name = b.constraint_name and b.constraint_type = ‘P‘ and a.table_name = ‘"
    ‘ 表名
    strTableName = getTableName()
    ‘设置表名为大写
    strTableName = UCase(strTableName)
    ‘写回Excel
    ActiveSheet.Cells(8, 1).Value = strTableName
    strKey = getUserPK()
    If strKey = "" Then
        ‘连接串
        Dim ConnDB As ADODB.Connection
        Set ConnDB = New ADODB.Connection

        Dim ConnStr As String
        ‘ 结果集
        Dim DBRst As ADODB.Recordset
        Set DBRst = New ADODB.Recordset
        ConnStr = getConnStr()
        ConnDB.Open ConnStr

        ‘DoEvents
        processFM.Show 0
        DoEvents
        DBRst.Open sql & strTableName & "‘", ConnStr
        If DBRst.EOF And DBRst.BOF Then
            Unload processFM
            MsgBox "表名错误!", vbCritical, "错误"
            Exit Sub
        End If
        strPK = DBRst.Fields.Item(0).Value
        ‘写回Excel
        ActiveSheet.Cells(6, 1).Value = strPK
        bln = True
        ‘关闭
        DBRst.Close
        ConnDB.Close
    End If
    If bln Then
        Unload processFM
        MsgBox "表名更新成功!", vbInformation, "提示"
    End If
End Sub

其中的DoEvents能保证出现的窗口正常显示。

这个有待研究,但是VBA中除去大量数据外,用的不多。

  4、VBA读取Excel单元格内容:

      #1、读取实际值,使用Cells.value

      #2、读取Excel显示的值,使用Cells.Text-------------------但是这里需要注意的是Excel中有可能显示为#######,这时候需要调整列宽,方法在上文已经有阐述了。

时间: 2024-10-10 02:02:00

VBA操作Excel的相关文章

VBA 操作 Excel 生成日期及星期

直接上代码~~ 1.  在一个 Excel 生成当月或当年指定月份的日期及星期 ' 获取星期的显示 Function disp(i As Integer) Select Case i Case 1 disp = "一" Case 2 disp = "二" Case 3 disp = "三" Case 4 disp = "四" Case 5 disp = "五" Case 6 disp = "六&q

VBA在Excel中的应用(三)

目录  Chart Export Chart Format Chart Lengend  Chart Protect  Chart Title  Chart Chart Export 1. 将Excel中的图表导出成gif格式的图片保存到硬盘上 Sub ExportChart()     Dim myChart As Chart     Set myChart = ActiveChart     myChart.Export Filename:="C:\Chart.gif", Filt

VBA连接SQL SERVER数据库操作Excel

 VBA连接SQL SERVER数据库操作Excel. Sub 按钮1_Click() Dim i As Integer, j As Integer, sht As Worksheet 'i,j为整数变量:sht 为excel工作表对象变量,指向某一工作表 'Dim cn As New ADODB.Connection '定义数据链接对象 ,保存连接数据库信息:请先添加ADO引用 'Dim rs As New ADODB.Recordset '定义记录集对象,保存数据表 '工具 ---〉引用

C#操作EXcel

using System; using System.Drawing; using System.Data; using GemBox.Spreadsheet; namespace Samples { /// <summary> /// Feature samples. /// </summary> class FeatureSamplesCS { [STAThread] static void Main(string[] args) { ExcelFile excelFile =

VBA取得EXCEL表格中的行数和列数

VBA取得EXCEL表格中的行数和列数 初学EXCEL宏的童鞋,总是很想知道表格中含有数据的行数和列数,尤其是行数和列数不确定的情况下.这样可以避免很多的错误,并且可以提高效率.但每次用到的时候到网上查找时,总是给了很多无用的答案,往往找不到想要的结果.笔者也是每次使用时,临时查找总是很头疼.偶然发现一篇博客,上面详细记录了不同的方法,笔者测试了几种发现真的很好用.本着分享万岁的精神,将博客内容共享出来.希望对大家有所帮助. 来源:http://www.okexcel.com.cn/bbs/vi

C#使用第三方组件Epplus操作Excel表

Epplus操作Excel基础详解 1.什么是Epplus Epplus是一个使用Open Office XML文件格式,能读写Excel2007/2010文件的开源组件,在导出Excel的时候不需要电脑上安装office. 其中,Open Office XML文档格式包括我们常见的xlsx.docx.pptx等,换而言之,我们常见的这些格式的文件都是基于捆绑XML文件的,使用Epplus操作的本质是通过操作XML文件去操作xlsx.XML,是一种可扩展标记语言,在计算机中,标记指计算机能理解的

用VBA取得EXCEL有效行列数方法研究

作者:iamlaosong 我常用下面方式取得有效行数: maxrow=sheets(1).[A65536].End(xlUp).Row 实际使用中发现这种方法存在2个问题: 1.高低版本不兼容,2007版最大行数增加以后,就不能用65536了,而要用1048576,即 maxrow = sheets(1).[A1048576].End(xlUp).Row 2.当最后一行不为空时,用这个方法取不到正确的值. 下面说明用VBA得到EXCEL表格中的行数和列数的特点,以便根据需要选用 每种方法中上面

Ruby操作Excel的方法与技巧大全

测试工作中,批量的数据通常会放到excel表格中,测试输出的数据写回表格中,这样输入输出易于管理,同时清晰明了 使用ruby来操作excel文件首先需要在脚本里包含以下语句 require'win32ole' 把win32ole包含进来后,就可以通过和windows下的excelapi进行交互来对excel文件进行读写了. 打开excel文件,对其中的sheet进行访问: 1 excel =WIN32OLE::new('excel.Application') 2 workbook =excel.

VC操作excel

http://www.cnblogs.com/witxjp/archive/2010/06/05/1752181.html 最近在做个数据库程序,因为有些数据用户要求导出到Excel文件显示(需要报给其他单位).所以查阅了一下相关的VC的Excel编程操作,总结一下吧:(所有资料来源于网络) 利用VC操作Excel的方法至少有两种 1 .利用ODBC把Excel文件当成数据库文件,来进行读.写.修改等操作,网上有人编写了CSpreadSheet类,提供支持. 2. 利用Automation(OL