码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-01-05 15:08:08      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:cleanup   vba   als   end   ksh   sum   add   value   put   

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数据操作小实例

标签:cleanup   vba   als   end   ksh   sum   add   value   put   

原文地址:https://www.cnblogs.com/luoye00/p/10224382.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!