`
kong6001
  • 浏览: 142222 次
  • 性别: Icon_minigender_1
  • 来自: 广东广州
社区版块
存档分类
最新评论

VB操作Excel

    博客分类:
  • VB
阅读更多
Private Sub Excel_Exchange()

'#先拷贝Excel
Set xlapp = CreateObject("Excel.Application") '创建EXCEL对象
file = txtDirectory.Text
Set xlbook = xlapp.Workbooks.Open(file) '打开已经存在的EXCEL工件簿文件
xlapp.Visible = False '设置EXCEL对象可见(或不可见)
Set xlsheet = xlbook.Worksheets(1) '设置活动工作表
 xlsheet.Activate ''設定工作表為焦點
'xlSheet.Cells(Row, col) = 值 '给单元格(row,col)赋值
'xlSheet.PrintOut '打印工作表


 On Error GoTo ErrHandler
file = Replace(file, ".xls", "_new.xls")
 xlsheet.SaveAs file  'App.Path & "\test.xls"           '按指定文件名存盘
'statusTxt.Caption = "转换完成.新文件为:" & file
xlapp.Quit '结束EXCEL对象'xlapp.Workbooks.Close
 Set xlapp = Nothing '释放xlApp对象
 'xlappTarget.Quit '结束EXCEL对象'xlapp.Workbooks.Close
 'Set xlappTarget = Nothing '释放xlApp对象
 '#拷贝Excel完成,在新的Excel中做处理#
 '#打开拷贝的文件#
 Set xlapp = CreateObject("Excel.Application") '创建EXCEL对象
Set xlbook = xlapp.Workbooks.Open(file) '打开已经存在的EXCEL工件簿文件
xlapp.Visible = False '设置EXCEL对象可见(或不可见)
Set xlsheet = xlbook.Worksheets(1) '设置活动工作表
 xlsheet.Activate ''設定工作表為焦點
 
  Dim DataRange As Variant
  Dim Irow As Long
  Dim Icol As Integer
  Dim MaxCols As Long
   Dim status As String
   Dim errStatus As String
   
  Dim tim As Date
  Dim hh As Date
  
  
  DataRange = Range("A1").CurrentRegion.Value '不使用Set
  MaxRows = Range("A1").CurrentRegion.Rows.count
  'MaxCols = Range("A1").CurrentRegion.Columns.Count
  Dim count As Integer
  
  For Irow = 2 To MaxRows
   tim = DataRange(Irow, 4)
  ' Debug.Print tim
   ' status = DataRange(Irow, 6)
    errStatus = DataRange(Irow, 7)
   ' Debug.Print errStatus
     hh = Format(tim, "HH:mm:ss")
     
       If hh > "19:00" And hh < "23:59:59" Then
                If InStr(errStatus, "无效记录") > 0 Or InStr("无效记录", errStatus) Then
                'status = "加班签到"
                ''errStatus = "自由加班"
                 t = Format(tim, "MM\/dd\/yyyy HH:mm")
                 DataRange(Irow, 4) = t
                DataRange(Irow, 6) = "加班签到"
                 DataRange(Irow, 7) = "自由加班"
                ' Debug.Print "----19:00~23:59"
                 count = count + 1
                End If
             
        End If
        
       If hh > "00:00" And hh < "06:30" Then
        If InStr(errStatus, "无效记录") > 0 Or InStr("无效记录", errStatus) Then
         'status = "加班签退"
         ' errStatus = "自由加班"
                t = Format(tim, "MM\/dd\/yyyy HH:mm")
                 DataRange(Irow, 4) = t
           DataRange(Irow, 6) = "加班签退"
                 DataRange(Irow, 7) = "自由加班"
               ' Debug.Print "--------00~0630"
                 count = count + 1
                 End If
        End If
    
  Next Irow
   Range("A1").CurrentRegion = DataRange '将结果写回到区域中
  
  
  
 
statusTxt.Caption = "转换完成,修改" & count & "条记录。" & vbCrLf & "新文件为:" & file
xlapp.DisplayAlerts = False '不提示保存
xlapp.Save
xlapp.Quit '结束EXCEL对象'xlapp.Workbooks.Close
 Set xlapp = Nothing '释放xlApp对象
ErrHandler:
Debug.Print "修改记录:" & count
 Debug.Print "退出," & "修改记录:" & count & " " & Now()
            '用户按“取消”按钮。
  Exit Sub
End Sub


 

 

Private Sub exchangeButton_Click()
If StrComp(txtDirectory.Text, "") = 0 Then
MsgBox "请选择要转换的Excel文件"
Else
exchangeButton.Enabled = False
statusTxt.Visible = True

statusTxt.Caption = "转换中,请稍候..."
Excel_Exchange
'statusTxt.Caption = "转换完成."
exchangeButton.Enabled = True
End If



End Sub
 

Private Sub openButton_Click()
'CancelError 为 True。
            On Error GoTo ErrHandler
            '设置过滤器。
            CommonDialog1.Filter = "All Files (*.*)|*.*|Excel (*.xls)|*.xls"
            '指定缺省过滤器。
            CommonDialog1.FilterIndex = 2
            '显示“打开”对话框。
            CommonDialog1.ShowOpen
           txtDirectory.Text = CommonDialog1.FileName
            '调用打开文件的过程。
           ' OpenFile (CommonDialog1.FileName)
ErrHandler:
            '用户按“取消”按钮。
            Exit Sub

End Sub
 

 注意客户端机器要注册:COMDLG32.OCX

拷贝 COMDLG32.OCX 到 c:\Windows\system32
运行命令注册
Regsvr32 COMDLG32.OCX

 

直接使用for循环操作,非常非常慢。现在这种处理方式,几秒钟可以处理完,用 For需要几分钟的时间

分享到:
评论

相关推荐

    用VB操作Excel(VB6.0)(整理).doc

    使用 VB 操作 Excel(VB6.0) VB(Visual Basic)是微软公司开发的一种编程语言,Excel 是微软公司开发的一种电子表格软件。VB 可以通过自动化功能来操作 Excel,实现对 Excel 的读写、控制和处理。本资源摘要信息...

    vb操作EXCEL表的常用方法总结.doc

    VB操作EXCEL表的常用方法总结 VB操作EXCEL表的常用方法是指使用VB语言来操作EXCEL表的各种方法和技巧。VB是常用的应用软件开发工具之一,但由于VB的报表功能有限,同时一旦报表格式发生变化,就得相应修改程序,给...

    用VB操作excel方法汇总

    ### 用VB操作Excel方法汇总 #### 一、概述 在日常工作中,Excel作为一款强大的电子表格处理软件,被广泛应用于数据分析、财务管理等多个领域。然而,对于大量的数据处理任务,手动操作不仅耗时且容易出错。这时,...

    VB操作EXCEL大全,已经过测试

    这个“VB操作EXCEL大全”显然是一份资源,包含了使用VB来控制和自动化Excel任务的示例代码。下面我们将深入探讨VB如何与Excel进行交互,并提供一些关键知识点。 1. **引入对象库**:在VB中操作Excel,首先需要引入...

    vb操作excel vb操作excel

    综上所述,VB操作Excel的能力强大且灵活,能够满足各种办公自动化需求。通过熟练掌握相关API和技巧,开发者可以大大提高工作效率,处理大量数据,甚至构建复杂的数据分析和报告系统。在实际应用中,还应注意错误处理...

    VB操作Excel实现读取写入打印

    VB 操作 Excel 实现读取写入打印 VB 操作 Excel 是一种常用的数据操作方式,通过使用 VB 语言,可以实现对 Excel 文件的读取、写入、打印等操作。本文将对 VB 操作 Excel 的实现读取写入打印进行详细的介绍。 VB ...

    vb操作excel教程

    【VB操作Excel教程详解】 VB(Visual Basic)作为一款经典的编程环境,虽然其报表功能相对有限,但在与其他应用程序集成方面却表现出强大的能力。对于需要处理复杂报表和数据分析的开发人员而言,结合Excel的强大...

    ExcelVBA.rar_VB excel_VB控制_VB操作EXCEL_vb 操作excel

    这个“ExcelVBA.rar”压缩包显然包含了一系列关于如何使用VB操作Excel的资源,包括可能的代码示例、教程或项目。 首先,VB与Excel的交互涉及的主要知识点有: 1. **对象模型**:ExcelVBA中,所有操作都是通过对象...

    VB 操作EXCEL的示例程序

    以下是对VB操作Excel的核心知识点的详细说明: 1. **Excel对象模型**:在VB中,我们通过引用Microsoft Excel对象库来访问Excel的功能。Excel对象模型由工作簿(Workbook)、工作表(Worksheet)、单元格(Cell)等...

    VB 操作Excel手册

    以上只是VB操作Excel的基本知识点,实际应用中可能涉及到更复杂的任务,如数据过滤、排序、VBA宏的调用等。通过熟练掌握这些基础,开发者可以构建强大的Excel自动化解决方案,提高工作效率,实现数据管理和分析的...

    用VB操作Excel

    ### 使用VB操作Excel知识点详解 #### 一、创建Excel对象 在Visual Basic (VB) 中,我们可以通过创建COM对象的方式与Microsoft Excel进行交互。这里的关键是利用`Excel.Application`类来初始化一个Excel应用实例。 ...

    VB操作Excel实现读取写入打印.doc

    "VB操作Excel实现读取写入打印" VB 操作 Excel 实现读取写入打印是指使用 Visual Basic 语言来操作 Excel 应用程序,实现对 Excel 文件的读取、写入和打印操作。本文将对 VB 操作 Excel 的相关知识点进行详细介绍。...

    利用VB操作EXCEL来生成复杂的报表

    总之,通过VB操作Excel,我们可以构建高度自定义的报表生成解决方案,实现自动化数据处理和报告输出,极大地提高了工作效率。在实际应用中,应结合具体需求灵活运用各种Excel对象和方法,以实现更复杂的功能。

    vb操作EXCEL表的常用方法标准调用

    【VB操作EXCEL表的常用方法标准调用】 在信息技术领域,Visual Basic(VB)是一种常用的编程语言,常用于开发Windows应用程序。虽然VB自身具备一定的报表功能,但在处理复杂的报表需求时,往往力不从心。这时,可以...

    VB 操作EXCEL 例子

    在VB(Visual Basic)中操作Excel,主要是通过创建Excel应用程序对象来实现对Excel电子表格的自动化操作。在上述代码中,我们看到一个典型的VB代码片段,用于创建一个新的Excel工作簿,填充数据,设置格式,以及保护...

    vb操作Excel示例.rar_VB-Excel_excel

    本示例是关于如何使用VB操作Excel的教程,对于需要自动化处理Excel数据或者构建Excel相关应用的开发者来说非常有价值。 首先,我们需要了解VB与Excel接口的基本概念。VB提供了Microsoft Excel Object Library,这...

Global site tag (gtag.js) - Google Analytics