求EXCEL中的VBA语言的翻译

求高手给翻一下下面这段VBA语言的每一句的具体意思和作用,我是VBA小白。急需知道具体意思,还有,能否告诉我如果要加一段代码,应该放进什么位置。非常感谢!!
Sub Macro1()
Application.ScreenUpdating = False
Sheet1.Select
Dim i As Integer
Dim b As Integer
i = Sheet2.[J65536].End(xlUp).Row
b = Sheet3.[B65536].End(xlUp).Row + 1
Range("C1:D1").Select
Selection.Copy
Range("E2:F2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A2:AQ18").Select
Selection.Copy
Sheets("当月").Select
If i = 1 Then
Range("J" & i).Select
ActiveSheet.Paste
Else
Range("J" & i + 2).Select
ActiveSheet.Paste
End If
Sheets("汇总").Cells(b, 1) = Sheet1.Range("C1")
Sheets("汇总").Cells(b, 2) = Sheet1.Range("Z10")
Sheets("汇总").Cells(b, 3) = Sheet1.Range("AA3")
Sheets("汇总").Cells(b, 4) = Sheet1.Range("AA4")
Sheets("汇总").Cells(b, 5) = Sheet1.Range("AA5")
Sheets("汇总").Cells(b, 6) = Sheet1.Range("AA6")
Sheets("汇总").Cells(b, 7) = Sheet1.Range("AA7")
Sheet1.Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""
Range("A1").Select
Application.ScreenUpdating = True
End Sub

录制宏的代码,意义性非常低,冗余语句太多!

Sub Macro1()
    Application.ScreenUpdating = False   '禁止屏幕刷新
        Sheet1.Select    '选定Sheet1工作表
        Dim i As Integer   '定义整型变量i
        Dim b As Integer   '。。。。。。b        
        i = Sheet2.[J65536].End(xlUp).Row
        'i等于Sheet2工作表J列最后一个有数据的单元格的行标
        b = Sheet3.[B65536].End(xlUp).Row + 1
        'b等于Sheet3工作表B列最后一个有数据的单元格下一行的行标 
        Range("C1:D1").Select   '选定C1:D1区域,记为XX
        Selection.Copy    '复制上面的选定语句
        Range("E2:F2").Select   '选定E2:F2区域,记为YY
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False    '粘贴复制的数据XX到YY
            Range("A2:AQ18").Select   '选定E2:F2区域,记为zz
            Selection.Copy   '复制上面的选定语句
            Sheets("当月").Select   '选定工作表名称为"当月"的工作表
        If i = 1 Then    '如果i=1,那么
            Range("J" & i).Select    '选定J1单元格
            ActiveSheet.Paste   '当前工作表粘贴上面复制的数据zz
        Else    '如果i不等于1,那么
            Range("J" & i + 2).Select   '选定J列i+2行的单元格
            ActiveSheet.Paste    '当前工作表粘贴上面复制的数据zz
        End If
            Sheets("汇总").Cells(b, 1) = Sheet1.Range("C1")
            '汇总工作表的第b行,第1列单元格数据 = Sheet1工作表的C1单元格数据
            Sheets("汇总").Cells(b, 2) = Sheet1.Range("Z10")
            '汇总工作表的第b行,第2列单元格数据 = Sheet1工作表的Z10单元格数据
            Sheets("汇总").Cells(b, 3) = Sheet1.Range("AA3")
            '汇总工作表的第b行,第3列单元格数据 = Sheet1工作表的AA3单元格数据
            Sheets("汇总").Cells(b, 4) = Sheet1.Range("AA4")
            '汇总工作表的第b行,第4列单元格数据 = Sheet1工作表的AA4单元格数据
            Sheets("汇总").Cells(b, 5) = Sheet1.Range("AA5")
            '汇总工作表的第b行,第5列单元格数据 = Sheet1工作表的AA5单元格数据
            Sheets("汇总").Cells(b, 6) = Sheet1.Range("AA6")
            '汇总工作表的第b行,第6列单元格数据 = Sheet1工作表的AA6单元格数据
            Sheets("汇总").Cells(b, 7) = Sheet1.Range("AA7")
            '汇总工作表的第b行,第7列单元格数据 = Sheet1工作表的AA7单元格数据
            '同上
            Sheet1.Select   '选定Sheet1工作表
            Application.CutCopyMode = False    '剪贴数据模式关闭
            ActiveCell.FormulaR1C1 = ""    '当前活动单元格数据清空
            Range("A1").Select   '选择A1单元格
    Application.ScreenUpdating = True   '允许屏幕刷新
End Sub

追问

请问你用的这个是什么翻译工具啊?

追答

额滴神啊!大哥,哪有那么牛的翻译软件啊。上面的每一个字都是自己打的啊,其他几个兄弟也是自己打的呢!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-12

这是录制的一段宏?

宏代码虽然能够达到目的?但是有的语句可以精简?

先帮你翻译一下:

Sub Macro1()
    Application.ScreenUpdating = False   '关闭屏幕更新
        Sheet1.Select                 '选中SHEET1
        Dim i As Integer      '定义i为整型变量
        Dim b As Integer   '定义b为整型变量
        i = Sheet2.[J65536].End(xlUp).Row     '变量赋值,等于sheet2的j列最后一个有内容的单元格的行号
        b = Sheet3.[B65536].End(xlUp).Row + 1 '变量赋值,等于sheet3的b列最后一个有内容的单元格的行号+1
        Range("C1:D1").Select '选中sheet1的C1:D1单元格
        Selection.Copy  '复制
        Range("E2:F2").Select  '选中sheet1的E2:F2
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False  '选择性粘贴,数值
            Range("A2:AQ18").Select  '选中sheet1的a2:aq18单元格
            Selection.Copy '复制
            Sheets("当月").Select '选中"当月"表格
        If i = 1 Then   '如果i=1
            Range("J" & i).Select  ' 选中"当月"表格的j列,i行,其实就是j1
            ActiveSheet.Paste      '当前单元格,粘贴
        Else   '否则
            Range("J" & i + 2).Select  '选中"当月"表格的j列,i+2行
            ActiveSheet.Paste  '当前单元格,粘贴,其实就是在"当月"表格的J3粘贴sheet1的a2:aq18单元格
        End If
            Sheets("汇总").Cells(b, 1) = Sheet1.Range("C1")  '“汇总”表的b行,第1列等于sheet1的C1单元格
            Sheets("汇总").Cells(b, 2) = Sheet1.Range("Z10") '“汇总”表的b行,第2列等于sheet1的Z10单元格
            Sheets("汇总").Cells(b, 3) = Sheet1.Range("AA3") '“汇总”表的b行,第3列等于sheet1的AA3单元格
            Sheets("汇总").Cells(b, 4) = Sheet1.Range("AA4") '“汇总”表的b行,第4列等于sheet1的aa4单元格
            Sheets("汇总").Cells(b, 5) = Sheet1.Range("AA5") '“汇总”表的b行,第5列等于sheet1的aa5单元格
            Sheets("汇总").Cells(b, 6) = Sheet1.Range("AA6") '“汇总”表的b行,第6列等于sheet1的aa6单元格
            Sheets("汇总").Cells(b, 7) = Sheet1.Range("AA7") '“汇总”表的b行,第7列等于sheet1的aa7单元格
            Sheet1.Select '选中sheet1
            Application.CutCopyMode = False  '剪切复制模式设置为FALSE,即取消掉复制单元格后那个虚框
            ActiveCell.FormulaR1C1 = ""  '当前单元格(A1)设置为空
            Range("A1").Select  '选中a1
    Application.ScreenUpdating = True '开启屏幕更新
End Sub

追问

请问你们用的这个是什么翻译工具啊?

第2个回答  2013-10-12
Sub Macro1()
Application.ScreenUpdating = False关闭屏幕刷新
Sheet1.Select 选中Sheet1
Dim i As Integer 定义变量为长整型
Dim b As Integer
i = Sheet2.[J65536].End(xlUp).Row 取J列最后一个有数据格
b = Sheet3.[B65536].End(xlUp).Row + 1
Range("C1:D1").Select 选中区域"C1:D1")
Selection.Copy 复制
Range("E2:F2").Select 以下为粘贴
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A2:AQ18").Select

Selection.Copy
Sheets("当月").Select
以下为一个循环,根据i的取值情况选择不同操作
If i = 1 Then 当变量I=1时 执行粘贴
Range("J" & i).Select 选中J1
ActiveSheet.Paste
Else 否则
Range("J" & i + 2).Select 选中J 列 i+2 格
ActiveSheet.Paste粘贴
End If
Sheets("汇总").Cells(b, 1) = Sheet1.Range("C1") 以下为指定单元格("汇总"表的B1格)赋值为特定单元格(Sheet1的C1格)的值
Sheets("汇总").Cells(b, 2) = Sheet1.Range("Z10")
Sheets("汇总").Cells(b, 3) = Sheet1.Range("AA3")
Sheets("汇总").Cells(b, 4) = Sheet1.Range("AA4")
Sheets("汇总").Cells(b, 5) = Sheet1.Range("AA5")
Sheets("汇总").Cells(b, 6) = Sheet1.Range("AA6")
Sheets("汇总").Cells(b, 7) = Sheet1.Range("AA7")
Sheet1.Select
Application.CutCopyMode = False 禁止复制粘贴操作
ActiveCell.FormulaR1C1 = "" 当前格的值为空
Range("A1").Select 选中A1格
Application.ScreenUpdating = True开启屏幕刷新
End Sub本回答被网友采纳
相似回答