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

[µo°Ý] ¦p¦óÅý¦¹µ{¦¡®Ä²v´£°ª?

[µo°Ý] ¦p¦óÅý¦¹µ{¦¡®Ä²v´£°ª?

  1. Private Sub cmdMerge_Click()
  2. Application.ScreenUpdating = False '«Ì½ª«Ì¹õ¨ê·s

  3.     Dim a, b, c As Integer '«Å§ia,b,c¬°¾ã¼Æ
  4.    
  5.     Dim objsheet As Worksheet
  6.    
  7.     WorkName = Excel.ActiveWorkbook.Name '¦¹ÀɮצWºÙ
  8.    
  9.     desc = Excel.Workbooks.Add.Name '·sÀÉ®×µøµ¡½s¸¹
  10.    
  11.    
  12.     Application.DisplayAlerts = False  '±Nĵ§i°T®§Ãö³¬
  13.    
  14.    
  15.         
  16.     i = 6

  17.     z = 1
  18.    
  19.     While Windows(WorkName).ActiveSheet.Range("b" & i) <> ""
  20.    
  21.         
  22.         Filename = Windows(WorkName).ActiveSheet.Range("b" & i) & "." & Windows(WorkName).ActiveSheet.Range("b3")
  23.         
  24.         Workbooks.Open Filename:=Excel.Workbooks(WorkName).Path & "\" & Filename
  25.         
  26.         
  27.         sheetname = Windows(WorkName).ActiveSheet.Range("b4")
  28.         
  29.         If sheetname <> "" Then
  30.             
  31.             'Àˬd¬¡­¶¬O§_¦s¦b
  32.             flag = 0
  33.             For j = 1 To Windows(Filename).Parent.Sheets.Count
  34.                 If Windows(Filename).Parent.Sheets(j).Name = sheetname Then
  35.                    flag = 1
  36.                    Exit For
  37.                 End If
  38.             Next
  39.             
  40.             If flag = 1 Then
  41.                 Windows(Filename).Parent.Sheets(sheetname).Select  '¤Á´«¬¡­¶
  42.             End If
  43.                
  44.         End If
  45.         Set objsheet = Windows(Filename).ActiveSheet '¤Á´«µøµ¡

  46.         'Ū¨ú¨Ó·½ÀɮתºX(¦C¼Æ),Y(¦æ¼Æ)
  47.         x = Windows(WorkName).ActiveSheet.Range("b1")
  48.         y = Windows(WorkName).ActiveSheet.Range("b2")
  49.         
  50.         
  51.         a = x '¶}©l¦C
  52.         b = y '¶}©lÄæ
  53.       
  54.         Do While True
  55.             kk = ""
  56.             For l = 1 To 10
  57.                 For k = 1 To 30
  58.                     If IsError(objsheet.Cells(x + l, k)) = False Then
  59.                         kk = kk & objsheet.Cells(x + l, k)
  60.                     End If
  61.                 Next
  62.             Next
  63.             If kk = "" Then Exit Do
  64.             x = x + 1
  65.         Loop
  66.         
  67.         Do While True
  68.             kk = ""
  69.             For l = 1 To 10
  70.                 For k = 1 To 30
  71.                     If IsError(objsheet.Cells(k, y + l)) = False Then
  72.                         kk = kk & objsheet.Cells(k, y + l)
  73.                     End If
  74.                 Next
  75.             Next l
  76.             If kk = "" Then Exit Do
  77.             y = y + 1
  78.         Loop
  79.         
  80.         '¿ï¨ú¨Ó·½½d³ò
  81.          objsheet.Range(objsheet.Cells(a, b), objsheet.Cells(x, y)).Select
  82.          
  83.          'copy
  84.          Selection.Copy

  85.         '¿ï¨ú¥Øªº
  86.         Windows(desc).Activate

  87.         
  88.         
  89.         '¦pªG¶K¤W¥H«á·|¤j©ó1048576«h·s¼W¤@­Ó¬¡­¶
  90.         If (z + x - a + 1) > 65535 Then
  91.             z = 1
  92.             Windows(desc).Parent.Sheets.Add
  93.             Windows(desc).Parent.Sheets(1).Cells(z, 1).Select
  94.         Else
  95.             If UCase(Sheet1.Range("b5").Value) = "Y" Then
  96.                 Windows(desc).ActiveSheet.Cells(z, 1).Value = Windows(WorkName).ActiveSheet.Range("b" & i)
  97.                 Windows(desc).ActiveSheet.Cells(z, 2).Select
  98.             Else
  99.                 Windows(desc).ActiveSheet.Cells(z, 1).Select
  100.             End If
  101.         End If
  102.         
  103.         ActiveSheet.Paste
  104.                
  105.         '¶K¤WÄæ¼e
  106.         Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
  107.         SkipBlanks:=False, Transpose:=False
  108.                         
  109.         z = z + x - a + 1
  110.       
  111.        '±N¨Ó·½ÀÉ®×Ãö³¬
  112.        Windows(Filename).Close
  113.         
  114.         i = i + 1 'Ū¨ú¤U¤@­ÓÀɮצWºÙ
  115.     Wend
  116.    
  117.     Windows(desc).ActiveSheet.Cells(1, 1).Select
  118.    
  119.     'ª©­±³]©w¤W¤U¥ª¥k0.5
  120.         With ActiveSheet.PageSetup
  121.         .PrintTitleRows = ""
  122.         .PrintTitleColumns = ""
  123.     End With
  124.     ActiveSheet.PageSetup.PrintArea = ""
  125.     With ActiveSheet.PageSetup
  126.         .LeftHeader = ""
  127.         .CenterHeader = ""
  128.         .RightHeader = ""
  129.         .LeftFooter = ""
  130.         .CenterFooter = ""
  131.         .RightFooter = ""
  132.         .LeftMargin = Application.InchesToPoints(0.196850393700787)
  133.         .RightMargin = Application.InchesToPoints(0.196850393700787)
  134.         .TopMargin = Application.InchesToPoints(0.196850393700787)
  135.         .BottomMargin = Application.InchesToPoints(0.196850393700787)
  136.         .HeaderMargin = Application.InchesToPoints(0.511811023622047)
  137.         .FooterMargin = Application.InchesToPoints(0.511811023622047)
  138.         .PrintHeadings = False
  139.         .PrintGridlines = False
  140.         .PrintComments = xlPrintNoComments
  141.         .PrintQuality = 600
  142.         .CenterHorizontally = False
  143.         .CenterVertically = False
  144.         .Orientation = xlPortrait
  145.         .Draft = False
  146.         .PaperSize = xlPaperA4
  147.         .FirstPageNumber = xlAutomatic
  148.         .Order = xlDownThenOver
  149.         .BlackAndWhite = False
  150.         .Zoom = 100
  151.         .PrintErrors = xlPrintErrorsDisplayed
  152.     End With
  153.    
  154.     'A:F»¼¼W±Æ§Ç
  155.     ActiveSheet.Columns("A:F").Select
  156.     Selection.Sort Key1:=ActiveSheet.Range("C2"), Order1:=xlAscending, Header:=xlGuess, _
  157.         OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
  158.         :=xlStroke, DataOption1:=xlSortNormal
  159.    
  160.     '¸ê®Æ­åªR
  161.     ActiveSheet.Columns("D:D").Select
  162.     Selection.Insert Shift:=xlToRight
  163.     ActiveSheet.Columns("C:C").Select
  164.     Selection.TextToColumns Destination:=Range("C1"), DataType:=xlDelimited, _
  165.         TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
  166.         Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
  167.         :=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
  168.         
  169.     '¾ã²z
  170.     ActiveSheet.Range("C1").Select
  171.     ActiveCell.FormulaR1C1 = "µæ¦W"
  172.     ActiveSheet.Range("D1").Select
  173.     ActiveCell.FormulaR1C1 = "³æ»ù"
  174.     ActiveSheet.Columns("D:D").ColumnWidth = 5.63
  175.    
  176.     Application.DisplayAlerts = True  '±Nĵ§i°T®§¥´¶}
  177.    
  178. Application.ScreenUpdating = True '¨ú®ø«Ì½ª«Ì¹õ¨ê·s
  179. End Sub
½Æ»s¥N½X

        ÀR«ä¦Û¦b : ¡i®É¶¡µLªk¾B¾×¡j©È®É¶¡®ø³u¡Aªá¤F³\¦h¤ß¦å¡A·QºÉ¦U¦¡¤èªk­n¾B¾×®É¶¡¡Aµ²ªG¬O¡G®ö¶O¤F§ó¦h®É¶¡¡A¥B¤@µL©Ò¦¨¡I
ªð¦^¦Cªí ¤W¤@¥DÃD