循序渐进VBA EXCEL数据操作小实例

Posted luoye00

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了循序渐进VBA EXCEL数据操作小实例相关的知识,希望对你有一定的参考价值。

1 向指定单元格区域内写入数据

技术分享图片
Sub example1()
    Dim arr(1 To 3)
    arr(1) = Array("A", "B", "C", "D")
    arr(2) = Array("E", "F", "G", "H")
    arr(3) = Array("I", "J", "K", "L")
    For i = 1 To 3
        Range("A" & i & ":D" & i).Value = arr(i)
    Next

End Sub
View Code

2 复制指定单元格内的数据到另一个区域

技术分享图片
Sub example2()
    Dim arr1
    arr1 = Range("A1:D1").Value
    Range("G3:J3").Value = arr1
End Sub
View Code

3 数据操作综合实例

技术分享图片
Sub example3()
    Dim i As Integer
    Dim Tit
    Tit = Array("正序列", "倒序")
    Sheet1.Range("O1:P1").Value = Tit
   
    
    For j = 1 To 24
        Sheet1.Range("O" & j).Value = j
        
    Next
    
    Row = Sheet1.Range("o65536").End(xlUp).Row 读取数据行行号
    r = r + Row
    
    For k = 1 To r
        Sheet1.Range("P" & k).Value = r
        r = r - 1
    Next
    

    For i = 1 To Row
        arr2 = Sheet1.Range("O" & i & ":P" & i).Value 读取表一指定区域的单元格的值到数组
        Sheets("Sheet1").Range("R" & i & ":S" & i).Value = arr2 将数组的元素写入到表
        
    Next
    
End Sub
View Code

4 Find 及 Findnext 全文查找综合实例

技术分享图片
Sub example4()
    Dim s As String
    Dim c
    On Error Resume Next
    Dim rn
    s = InputBox("输入查找关键字")
    i = 0
  
    Set c = Sheets("sheet1").Range("a1:d65536").Find(s)
    If c Is Nothing Then
       i = 0
    Else
       firstAddress = c.Address
       r = Sheet1.Range("a65536").End(xlUp).Row
       Do
        Set c = Sheet1.Range("a1:d" & r).FindNext(c)
        c.Interior.Color = RGB(232, 254, 250)
        i = i + 1
       Loop While Not c Is Nothing And c.Address <> firstAddress
   
    End If
    
    MsgBox "共有" & i & "条满足条件的记录."
End Sub
View Code

5 添加数据及数据套打综合实例

技术分享图片
Sub example5()
    rw = Sheet1.Range("a65536").End(xlUp).Row
    For i = 1 To rw
      arr = Sheet1.Range("a" & i & ":d" & i)
      With Sheet2
        .Range("B2") = arr(1, 1)
        .Range("D2") = arr(1, 2)
        .Range("B3") = arr(1, 3)
        .Range("D3") = arr(1, 4)
      End With
      Call printForm 调用打印子程序
    Next
    Call CleanUp 调用清除指定区域数据子程序
End Sub

Sub CleanUp() 清除指定区域数据
    With Sheet2
        .Range("B2").ClearContents
        .Range("D2").ClearContents
        .Range("B3").ClearContents
        .Range("D3").ClearContents
    End With
End Sub

Sub printForm() 打印
    Dim ws As Worksheet
    For Each ws In Worksheets
      If (ws.Visible = xlSheetVisible) And (ws.Name = "Sheet2") Then
      With ws.PageSetup
          .Zoom = False 关闭打印缩放
          
          .FitToPagesWide = 1 设置打印宽度
          .FitToPagesTall = 1 设置打印高度
      End With
     ws.PrintOut
      ws.PrintPreview
      End If
    Next

End Sub


Sub example6() 添加信息
    Dim xm$, nl$, zy$, zn$ 声明数据类型为字符串
    xm = Sheet2.Range("b2").Value
    nl = Sheet2.Range("d2").Value
    zy = Sheet2.Range("b3").Value
    zn = Sheet2.Range("d3").Value
    
    rw = Sheet3.Range("a65536").End(xlUp).Row
    If rw < 1 Then rw = 1: End
    i = rw + 1
    
    With Sheet3
        .Cells(i, 1) = xm
        .Cells(i, 2) = nl
        .Cells(i, 3) = zy
        .Cells(i, 4) = zn
    End With
    
    i = i + 1
    Call CleanUp
End Sub
View Code

 

以上是关于循序渐进VBA EXCEL数据操作小实例的主要内容,如果未能解决你的问题,请参考以下文章

excel中使用vba以只读方式打开工作薄的操作方法

csv转excel,用vba实现

[Excel VBA]自定义排序的三种方法

excel vba 运行太慢了,怎么做小修改让代码运行快一些

求问:excel VBA对一个已经打开的网页进行操作

如何用vba给excel数据画图