|
10学分
Private Sub CommandButton1_Click()
Dim introwcount As Long
Dim I, intcolcount As Integer
introwcount = Worksheets("早会").UsedRange.Rows.Count '获得有内容的行数
intcolcount = Worksheets("早会").UsedRange.Columns.Count
introwcount = Worksheets("PM").UsedRange.Rows.Count '获得有内容的行数
intcolcount = Worksheets("PM").UsedRange.Columns.Count
introwcount = Worksheets("晚餐").UsedRange.Rows.Count '获得有内容的行数
intcolcount = Worksheets("晚餐").UsedRange.Columns.Count
'ActiveWorkbook.ActiveSheet.Range("a5:z65536").ClearContents
'For Each w In Workbooks
' If w.Name <> ThisWorkbook.Name Then
Worksheets("B").Range("a5:z65536").ClearContents
For I = 2 To introwcount
'MsgBox Worksheets("早会").Cells(I, 1).Value
'MsgBox Worksheets("PM").Cells(I, 1).Value
'MsgBox Worksheets("B").Cells(2, 2).Value
If Worksheets("早会").Cells(I, 1).Value = Worksheets("B").Cells(2, 2).Value Then
Worksheets("早会").Range("a" & I & ":f" & I).Copy Worksheets("B").Range("a" & Worksheets("B").[a65536].End(xlUp).Row + 1)
End If
Next I
For I = 2 To introwcount
If Worksheets("PM").Cells(I, 1).Value = Worksheets("B").Cells(2, 2).Value Then
Worksheets("PM").Range("a" & I & ":z" & I).Copy Worksheets("B").Range("a" & Worksheets("B").[a65536].End(xlUp).Row + 1)
End If
Next I
For I = 2 To introwcount
If Worksheets("晚餐").Cells(I, 1).Value = Worksheets("B").Cells(2, 2).Value Then
Worksheets("晚餐").Range("a" & I & ":z" & I).Copy Worksheets("B").Range("a" & Worksheets("B").[a65536].End(xlUp).Row + 1)
End If
Next I
End Sub
帮我把每一步都翻译过来谢谢写在后面
回复 196391689 的帖子
- Private Sub CommandButton1_Click()
- Dim introwcount1 As Long, introwcount2 As Long, introwcount3 As Long
- Dim I, intcolcount As Integer
- introwcount1 = Worksheets("早会").UsedRange.Rows.Count '获得早会工作表有内容的行数
- intcolcount = Worksheets("早会").UsedRange.Columns.Count '获得早会工作表有内容的列数
- introwcount2 = Worksheets("PM").UsedRange.Rows.Count '获得PM工作表有内容的行数
- intcolcount = Worksheets("PM").UsedRange.Columns.Count '获得PM早会工作表有内容的列数
- introwcount3 = Worksheets("晚餐").UsedRange.Rows.Count '获得晚餐工作表有内容的行数
- intcolcount = Worksheets("晚餐").UsedRange.Columns.Count '获得晚餐工作表有内容的列数
-
- '上面6行代码的1、3、5行与原代码有变化,原因1、3、5行都是给相同变量赋值,这样就保留了最后1次赋值的结果,根据实际情况,应该给3个变量分别赋值
-
- 'ActiveWorkbook.ActiveSheet.Range("a5:z65536").ClearContents
- 'For Each w In Workbooks
- ' If w.Name <> ThisWorkbook.Name Then
-
-
-
- Worksheets("B").Range("a5:z65536").ClearContents '清空B工作表A5:Z65536区域的内容
-
- For I = 2 To introwcount1 '执行一个循环,循环变量I的初始值为2,结束值为早会工作表的最后1行
-
-
- 'MsgBox Worksheets("早会").Cells(I, 1).Value
- 'MsgBox Worksheets("PM").Cells(I, 1).Value
- 'MsgBox Worksheets("B").Cells(2, 2).Value
- If Worksheets("早会").Cells(I, 1).Value = Worksheets("B").Cells(2, 2).Value Then '判断早会工作表A列的内容是否与B工作表B2单元格的内容是否相等
- Worksheets("早会").Range("a" & I & ":Z" & I).Copy Worksheets("B").Range("a" & Worksheets("B").[a65536].End(xlUp).Row + 1) '这里F应该是Z
- 'Worksheets("B").[a65536].End(xlUp).Row B工作表A列最后1行的行号
- '如果上面的判断是真,也就是早会工作表A列的内容与B工作表B2的内容一致,就把早会工作表当前行(I行)A列到Z列的内容复制到B工作表最后一行的下面1行的A列到Z列
- End If '结束判断
- Next I 'I值加1,执行下一次循环
-
- For I = 2 To introwcount2
- If Worksheets("PM").Cells(I, 1).Value = Worksheets("B").Cells(2, 2).Value Then
- Worksheets("PM").Range("a" & I & ":z" & I).Copy Worksheets("B").Range("a" & Worksheets("B").[a65536].End(xlUp).Row + 1)
- End If
- Next I
- '上面这段代码,与之前的循环意义基本一致,只是比较的内容换成了PM工作表和B工作表
-
- For I = 2 To introwcount3
- If Worksheets("晚餐").Cells(I, 1).Value = Worksheets("B").Cells(2, 2).Value Then
- Worksheets("晚餐").Range("a" & I & ":z" & I).Copy Worksheets("B").Range("a" & Worksheets("B").[a65536].End(xlUp).Row + 1)
- End If
- Next I
- '上面这段代码,与之前的循环意义基本一致,只是比较的内容换成了晚餐工作表和B工作表
-
- '综上,本段代码的意思是逐一判断早会、PM、晚会3个工作表A列每行的内容是否等于B工作表B2单元格的内容,如果等,就把该行A列到Z列的内容赋值到B工作表最后1行的下面一行。
- End Sub
复制代码
|
|