Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3328|回复: 1

[已解决]求大侠帮忙

[复制链接]
发表于 2011-6-8 22:36 | 显示全部楼层 |阅读模式
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
帮我把每一步都翻译过来谢谢写在后面
最佳答案
2011-6-8 22:36
回复 196391689 的帖子

  1. Private Sub CommandButton1_Click()
  2.     Dim introwcount1 As Long, introwcount2 As Long, introwcount3 As Long
  3.     Dim I, intcolcount As Integer
  4.     introwcount1 = Worksheets("早会").UsedRange.Rows.Count   '获得早会工作表有内容的行数
  5.     intcolcount = Worksheets("早会").UsedRange.Columns.Count '获得早会工作表有内容的列数
  6.     introwcount2 = Worksheets("PM").UsedRange.Rows.Count '获得PM工作表有内容的行数
  7.     intcolcount = Worksheets("PM").UsedRange.Columns.Count '获得PM早会工作表有内容的列数
  8.     introwcount3 = Worksheets("晚餐").UsedRange.Rows.Count '获得晚餐工作表有内容的行数
  9.     intcolcount = Worksheets("晚餐").UsedRange.Columns.Count '获得晚餐工作表有内容的列数
  10.    
  11.     '上面6行代码的1、3、5行与原代码有变化,原因1、3、5行都是给相同变量赋值,这样就保留了最后1次赋值的结果,根据实际情况,应该给3个变量分别赋值
  12.    
  13. 'ActiveWorkbook.ActiveSheet.Range("a5:z65536").ClearContents
  14. 'For Each w In Workbooks
  15.    ' If w.Name <> ThisWorkbook.Name Then
  16.    
  17.    
  18.    
  19.     Worksheets("B").Range("a5:z65536").ClearContents  '清空B工作表A5:Z65536区域的内容
  20.    
  21.     For I = 2 To introwcount1  '执行一个循环,循环变量I的初始值为2,结束值为早会工作表的最后1行
  22.    
  23.    
  24.         'MsgBox Worksheets("早会").Cells(I, 1).Value
  25.         'MsgBox Worksheets("PM").Cells(I, 1).Value
  26.         'MsgBox Worksheets("B").Cells(2, 2).Value
  27.         If Worksheets("早会").Cells(I, 1).Value = Worksheets("B").Cells(2, 2).Value Then  '判断早会工作表A列的内容是否与B工作表B2单元格的内容是否相等
  28.             Worksheets("早会").Range("a" & I & ":Z" & I).Copy Worksheets("B").Range("a" & Worksheets("B").[a65536].End(xlUp).Row + 1) '这里F应该是Z
  29.             'Worksheets("B").[a65536].End(xlUp).Row B工作表A列最后1行的行号
  30.             '如果上面的判断是真,也就是早会工作表A列的内容与B工作表B2的内容一致,就把早会工作表当前行(I行)A列到Z列的内容复制到B工作表最后一行的下面1行的A列到Z列
  31.         End If '结束判断
  32.     Next I  'I值加1,执行下一次循环
  33.          
  34.     For I = 2 To introwcount2
  35.         If Worksheets("PM").Cells(I, 1).Value = Worksheets("B").Cells(2, 2).Value Then
  36.             Worksheets("PM").Range("a" & I & ":z" & I).Copy Worksheets("B").Range("a" & Worksheets("B").[a65536].End(xlUp).Row + 1)
  37.         End If
  38.     Next I
  39.     '上面这段代码,与之前的循环意义基本一致,只是比较的内容换成了PM工作表和B工作表
  40.    
  41.     For I = 2 To introwcount3
  42.         If Worksheets("晚餐").Cells(I, 1).Value = Worksheets("B").Cells(2, 2).Value Then
  43.             Worksheets("晚餐").Range("a" & I & ":z" & I).Copy Worksheets("B").Range("a" & Worksheets("B").[a65536].End(xlUp).Row + 1)
  44.         End If
  45.     Next I
  46.     '上面这段代码,与之前的循环意义基本一致,只是比较的内容换成了晚餐工作表和B工作表
  47.    
  48.     '综上,本段代码的意思是逐一判断早会、PM、晚会3个工作表A列每行的内容是否等于B工作表B2单元格的内容,如果等,就把该行A列到Z列的内容赋值到B工作表最后1行的下面一行。
  49. End Sub
复制代码

最佳答案

查看完整内容

回复 196391689 的帖子
发表于 2011-6-8 22:36 | 显示全部楼层    本楼为最佳答案   
回复 196391689 的帖子

  1. Private Sub CommandButton1_Click()
  2.     Dim introwcount1 As Long, introwcount2 As Long, introwcount3 As Long
  3.     Dim I, intcolcount As Integer
  4.     introwcount1 = Worksheets("早会").UsedRange.Rows.Count   '获得早会工作表有内容的行数
  5.     intcolcount = Worksheets("早会").UsedRange.Columns.Count '获得早会工作表有内容的列数
  6.     introwcount2 = Worksheets("PM").UsedRange.Rows.Count '获得PM工作表有内容的行数
  7.     intcolcount = Worksheets("PM").UsedRange.Columns.Count '获得PM早会工作表有内容的列数
  8.     introwcount3 = Worksheets("晚餐").UsedRange.Rows.Count '获得晚餐工作表有内容的行数
  9.     intcolcount = Worksheets("晚餐").UsedRange.Columns.Count '获得晚餐工作表有内容的列数
  10.    
  11.     '上面6行代码的1、3、5行与原代码有变化,原因1、3、5行都是给相同变量赋值,这样就保留了最后1次赋值的结果,根据实际情况,应该给3个变量分别赋值
  12.    
  13. 'ActiveWorkbook.ActiveSheet.Range("a5:z65536").ClearContents
  14. 'For Each w In Workbooks
  15.    ' If w.Name <> ThisWorkbook.Name Then
  16.    
  17.    
  18.    
  19.     Worksheets("B").Range("a5:z65536").ClearContents  '清空B工作表A5:Z65536区域的内容
  20.    
  21.     For I = 2 To introwcount1  '执行一个循环,循环变量I的初始值为2,结束值为早会工作表的最后1行
  22.    
  23.    
  24.         'MsgBox Worksheets("早会").Cells(I, 1).Value
  25.         'MsgBox Worksheets("PM").Cells(I, 1).Value
  26.         'MsgBox Worksheets("B").Cells(2, 2).Value
  27.         If Worksheets("早会").Cells(I, 1).Value = Worksheets("B").Cells(2, 2).Value Then  '判断早会工作表A列的内容是否与B工作表B2单元格的内容是否相等
  28.             Worksheets("早会").Range("a" & I & ":Z" & I).Copy Worksheets("B").Range("a" & Worksheets("B").[a65536].End(xlUp).Row + 1) '这里F应该是Z
  29.             'Worksheets("B").[a65536].End(xlUp).Row B工作表A列最后1行的行号
  30.             '如果上面的判断是真,也就是早会工作表A列的内容与B工作表B2的内容一致,就把早会工作表当前行(I行)A列到Z列的内容复制到B工作表最后一行的下面1行的A列到Z列
  31.         End If '结束判断
  32.     Next I  'I值加1,执行下一次循环
  33.          
  34.     For I = 2 To introwcount2
  35.         If Worksheets("PM").Cells(I, 1).Value = Worksheets("B").Cells(2, 2).Value Then
  36.             Worksheets("PM").Range("a" & I & ":z" & I).Copy Worksheets("B").Range("a" & Worksheets("B").[a65536].End(xlUp).Row + 1)
  37.         End If
  38.     Next I
  39.     '上面这段代码,与之前的循环意义基本一致,只是比较的内容换成了PM工作表和B工作表
  40.    
  41.     For I = 2 To introwcount3
  42.         If Worksheets("晚餐").Cells(I, 1).Value = Worksheets("B").Cells(2, 2).Value Then
  43.             Worksheets("晚餐").Range("a" & I & ":z" & I).Copy Worksheets("B").Range("a" & Worksheets("B").[a65536].End(xlUp).Row + 1)
  44.         End If
  45.     Next I
  46.     '上面这段代码,与之前的循环意义基本一致,只是比较的内容换成了晚餐工作表和B工作表
  47.    
  48.     '综上,本段代码的意思是逐一判断早会、PM、晚会3个工作表A列每行的内容是否等于B工作表B2单元格的内容,如果等,就把该行A列到Z列的内容赋值到B工作表最后1行的下面一行。
  49. End Sub
复制代码

点评

学习  发表于 2011-6-9 12:11
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-25 03:21 , Processed in 0.274241 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表