ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

½Ð±Ð¦X¨ÖÀx¦s®æ°ÝÃD

½Ð±Ð¦X¨ÖÀx¦s®æ°ÝÃD

µ{¦¡¬O¦X¨Ö¦h­Ó¤u§@ªíªº­È¡A¦p¦ó¼g¦¨Åª¨ì¨S¦³­È¤~Â÷¶}¡A¦Ó¤£¬Oµù¸Ñ¤¤ªºBB¤Î50¬O³]©w©T©w­È


Sub Compare()
        Dim Sh As Worksheet, i%, iRowEnd%, Ar()
     With ActiveWorkbook                 
        .Sheets.Add(, .Sheets(.Sheets.Count)).Name = "¦X¨Ö"            
      End With
    With Sheets("¦X¨Ö")
        .Move Sheets(2)                     
        .UsedRange.Offset(1).ClearContents   
        For i = 2 To Sheets.Count           
            iRowEnd = Sheets(i).Cells(Rows.Count, 1).End(xlUp).Row
            Ar = Sheets(i).Range("A2:BB" & iRowEnd).Value                                           '<========BB
            .Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(UBound(Ar), 50) = Ar         '<====50        
        Next
    End With
End Sub
Simon

¦^´_ 1# morris0914
¸Õ¸Õ¬Ý

Sub Compare()
    Dim Sh As Worksheet, i%, iRowEnd%, iColEnd%, Ar()
    With ActiveWorkbook
        .Sheets.Add(, .Sheets(.Sheets.Count)).Name = "¦X¨Ö"
    End With
    With Sheets("¦X¨Ö")
        .Move Sheets(2)
        .UsedRange.Offset(1).ClearContents
        For i = 2 To Sheets.Count
            iRowEnd = Sheets(i).Cells(Rows.Count, 1).End(xlUp).Row
            iColEnd = Sheets(i).Cells(1, Columns.Count).End(xlToLeft).Column
            Ar = Sheets(i).Range("A2:" & .Cells(iRowEnd, iColEnd).Address).Value
            .Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(UBound(Ar), UBound(Ar, 2)) = Ar
        Next
    End With
End Sub

TOP

·PÁ¤j¤jªºÀ°¦£
¥Ñ©ó«e10¦æ¦³ªÅ¥Õ¡A©Ò¥H
iColEnd = Sheets(i).Cells(1, Columns.Count).End(xlToLeft).Column
§ï¬°
iColEnd = Sheets(i).Cells(10, Columns.Count).End(xlToLeft).Column
Simon

TOP

¦A½Ð±Ð¤j¤j¡A¬°¦óµLªk±N¦h­ÓÀɮצX¨Ö¤X
¥i¥H±NÀÉ®×Åܦ¨½d¨Ò1¡AÀɮצpªþ¥ó

½d¨Ò1.zip (81.88 KB)

¤å¥ó½d¨Ò1

test20130531.zip (128.58 KB)

¥Dµ{¦¡

Simon

TOP

¦^´_ 4# morris0914
  1. Sub Compare()
  2.     Dim R As Integer, C As Integer, TheCoL As Integer
  3.     On Error GoTo Er
  4.     With ActiveWorkbook
  5.         .Sheets.Add(, .Sheets(.Sheets.Count)).Name = "¦X¨Ö"
  6.     End With
  7.     With Sheets("¦X¨Ö")
  8.         .Move Sheets(2)
  9.         Sheets(3).Range("A1").CurrentRegion.Copy .[A1]
  10.         R = .[A1].End(xlDown).Row + 2
  11.         For C = 1 To Sheets(3).UsedRange.Columns.Count
  12.             For i = 3 To Sheets.Count
  13.                  TheCoL = .Cells(R, .Columns.Count).End(xlToLeft).Column + 1
  14.                  If .Cells(R, .Columns.Count).End(xlToLeft) = "" Then TheCoL = 1
  15.                 With Sheets(i)
  16.                     .Range(.Cells(R, C), .Cells(.Rows.Count, C)).Copy Sheets("¦X¨Ö").Cells(R, TheCoL)
  17.                 End With
  18.             Next
  19.         Next
  20.     End With
  21.     Exit Sub
  22. Er:                    '³B¸Ì "¦X¨Ö" ¤u§@ªí¤w¦s¦b
  23.     Application.DisplayAlerts = False
  24.     ActiveSheet.Delete
  25.     Sheets("¦X¨Ö").Delete
  26.     Application.DisplayAlerts = True
  27.     Resume
  28. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

·PÁª©¤jªºÀ°¦£¡A§ÚªºVBA«Ü®z¡A³oµ{¦¡§Ú¤w¸g¬ã¨s«Ü¤[¡A¤@ª½¼g¤£¥X¨Ó¡C
¦A¦¸·PÁª©¤jªº¨ó§U¡C
Simon

TOP

¦A½Ð±Ð¤@¤U¦³¨Ç¦a¤è§Ú¤£¤Ó¤F¸Ñ

For C = 1 To Sheets(3).UsedRange.Columns.Count                                                                                    '§Úªº­¶­±¬O(menu, ¦X¨Ö, 4.log, 5.log)¬°¦ó¬O1 To Sheets(3)¡A¦Ó¤£¬OSheets(3) to.....
            For i = 3 To Sheets.Count
                   TheCoL = .Cells(R, .Columns.Count).End(xlToLeft).Column + 1
                   If .Cells(R, .Columns.Count).End(xlToLeft) = "" Then TheCoL = 1                                         ' ¬°¦óŪ¨ìxlToLeft¬°ªÅ¥Õ®É¡ATheCol=1¡A¦Ó¤£¬O¥ÎxlToright
                      With Sheets(i)
                          .Range(.Cells(R, C), .Cells(.Rows.Count, C)).Copy Sheets("¦X¨Ö").Cells(R, TheCoL)   '¬°¦ó¥Î¨ì2¦¸Cells
                      End With
            Next
Next
Simon

TOP

·PÁ¤j¤jªºÀ°¦£
Simon

TOP

¦^´_ 7# morris0914
Q:§Úªº­¶­±¬O(menu, ¦X¨Ö, 4.log, 5.log)¬°¦ó¬O1 To Sheets(3)¡A¦Ó¤£¬OSheets(3) to.....
A: Sheets(3).UsedRange.Columns.Count ,¸ÑÄÀ: ²Ä3­Ó¤u§@ªí(4.log).¤w¨Ï¥Î½d³ò.øó¦ì.ª«¥ó¼Æ¥Ø= 4.log¤w¨Ï¥Î½d³òªºÄæ¼Æ

Q:  ¬°¦óŪ¨ìxlToLeft¬°ªÅ¥Õ®É¡ATheCol=1¡A¦Ó¤£¬O¥ÎxlToright
TheCoL = .Cells(R, .Columns.Count).End(xlToLeft).Column + 1  '¸ê®Æ¼g¦b¥ªÃ䪺Äæ¦ì + 1
A: ¦p¦¹ Aøó·|ªÅµÛ

Q:¬°¦ó¥Î¨ì2¦¸Cells   
A:VBAªº»¡©ú
  1. Application¡BRange ¤Î Worksheet ª«¥ó®É¥Î Range ÄÝ©Ê¡C
  2. ¶Ç¦^ Range ª«¥ó¡A¸Óª«¥ó¥Nªí¤@­ÓÀx¦s®æ©ÎÀx¦s®æ½d³ò¡C
  3. expression.Range(Cell1, Cell2)
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

·PÁªO¤j¶W¸Ô²Óªº¸ÑĶ¡A¤@¬Ý´NÀ´
Simon

TOP

        ÀR«ä¦Û¦b : ¬Ý§O¤H¤£¶¶²´¡A¬O¦Û¤v­×¾i¤£°÷¡C
ªð¦^¦Cªí ¤W¤@¥DÃD