乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > 如何在<em>excel</em>中用宏处理数据?-excel 宏 遍历,excelvba遍历单

如何在<em>excel</em>中用宏处理数据?-excel 宏 遍历,excelvba遍历单

作者:乔山办公网日期:

返回目录:excel表格制作


那你可以定义一个数据变量。zd举个例子
Sub a()
Dim a As Integer, i As Integer, b(100) As Integer
For a = 1 To 100
If a Mod 2 = 0 Then
i = i + 1
b(i) = a
End If
Next a
End Sub

这里我就定义了一个b1到b100的数组。每一个为偶数的a都会被记录到数组中。
我不知道你是不是要这样的效果。

如果有能帮到你的地方,非常荣幸!如果有需要,可以私信我。

EXCEL本身就具备了很强大的数据处理能力以及图表生成e799bee5baa6e79fa5e98193e59b9ee7ad94333功能。可以应用于各行各业的数据表处理,再加上VBA后就如虎添翼,可以肯定地说一个企业规模在100人以下的所有数据处理的业务(不包含专业的设计范畴,如CAD画图),EXCEL都可以完成。

EXCEL的宏,只要是符合逻辑的要求都可以达到。

给一段代码供参考。这个程序是一个供奶站的应用中的一个功能,负责根据订奶记录的要求,每天自动生成送奶记录。

代码如下:

Sub 自动添加送奶记录()

Call 计算已送数量 '在添加送奶记录前先计算已送数量,防止已经送完的继续产生送奶记录

Dim mYs1, mYs2 As String

Const mYmax = 100 '订奶记录最大数

Dim mYarr1(1 To mYmax, 1 To 10)

Dim I, J, K, L As Integer

Dim mYday As Date

Dim mYweek As Integer

Sheets("管理工具").Select

mYday = Cells(5, 5)

mYweek = Cells(5, 6) '周1~周日 1~6

mYs1 = "订奶记录"

mYs2 = "当天送奶记录"

Sheets(mYs1).Select

I = 2

Do While Len(Cells(I, 1)) > 0

If Cells(I, 7) < Cells(I, 6) And Cells(I, 8) <= mYday Then

'将已送数量小于订货数量 且 起送日期小于当天日期

   For J = 1 To 10

       mYarr1(I - 1, J) = Cells(I, J)

   Next J

End If

I = I + 1

Loop

I = I - 2 'I记录了符合送奶条件的记录数

'生成送奶记录

'step1:将当天送奶记录清除

Sheets(mYs2).Select

Range("A2:F1000").Clear


J = 2 '记录当前行号

For K = 1 To I

    If mYarr1(K, 9) = "每天" Or (mYarr1(K, 9) = "平日" And mYweek <> 6 And mYweek <> 7) Then

       Cells(J, 1) = mYday

       Cells(J, 2) = mYarr1(K, 1)

       Cells(J, 3) = mYarr1(K, 3)

       Cells(J, 4) = mYarr1(K, 4)

       Cells(J, 5) = mYarr1(K, 5)

       Cells(J, 6) = mYarr1(K, 10)

       J = J + 1

    End If


Next K

Sheets("管理工具").Select

End Sub

订奶记录表格如下所示:

根据上面的订奶记录,自动生成下面的送奶记录。


用for……next循环或者Do while……loop循环都可以。。

按你模板规则来7a686964616fe78988e69d83332做的,测试下吧,有问题请追问

Sub pj()
Dim iRow%, cRow%, i%, cCol%
iRow = [a999999].End(xlUp).Row
cRow = -1
For i = 2 To iRow
cCol = 5
    If Cells(i - 1, 1) <> Cells(i, 1) Then
    cRow = cRow + 3
    Cells(cRow, 4) = "桩号"
    Cells(cRow, 5) = Cells(i, 1)
    Cells(cRow + 1, 4) = "左偏距/高程"
    Cells(cRow + 2, 4) = "右偏距/高程"
    If Cells(i, 2) < 0 Then
        Cells(cRow + 1, cCol) = Cells(i, 2)
        Cells(cRow + 1, cCol + 1) = Cells(i, 3)
        ElseIf Cells(i, 2) > 0 Then
        Cells(cRow + 2, cCol) = Cells(i, 2)
        Cells(cRow + 2, cCol + 1) = Cells(i, 3)
  
    End If
    Else
        If Cells(i, 2) < 0 Then
        cCol = Cells(cRow + 1, 255).End(xlToLeft).Column + 1
        Cells(cRow + 1, cCol) = Cells(i, 2)
        Cells(cRow + 1, cCol + 1) = Cells(i, 3)
        ElseIf Cells(i, 2) > 0 Then
        cCol = Cells(cRow + 2, 255).End(xlToLeft).Column + 1
        Cells(cRow + 2, cCol) = Cells(i, 2)
        Cells(cRow + 2, cCol + 1) = Cells(i, 3)
        End If
    End If
Next
End Sub

相关阅读

关键词不能为空

ppt怎么做_excel表格制作_office365_word文档_365办公网