2017-03-24 41 views
0

這可能是一個簡單的問題,而是試圖要放棄小時後...複製粘貼範圍從最小至最大

我想宏觀找到從最小到最大的範圍內。這個範圍應該被複制並粘貼到某種「彙總表」中。

我能夠使宏查找最小和最大,我也有一個複製粘貼指令的作品。

有人能幫我把這些指令合併成一個嗎?

這裏是迄今爲止我國宏觀,我就來了:

Sub Enter_Formula() 

    Dim blatt 
    Dim sheetName As String 
    For i = 1 To Sheets.Count 
     Sheets(i).Select 
     Range("=Min(A59:A86):=Max(A:A)").Copy Range("C1") 
    Next 

End Sub 

謝謝!!

+0

我迷路了。 「我想讓宏查找範圍從最小到最大」是什麼意思? – L42

+0

@ L42我需要宏來查找範圍內的最小值(例如A59:A86)以及整個列A的最大值。然後它應該複製(從找到的最小值開始到找到的最大值)並粘貼找到的範圍納入概要表 - 是否更容易理解? – user7761353

+0

因此,如果列A中的最大值在單元格A4中,並且最小值(在A59中:A86內)在單元格A62中,則要將A4:A62複製到C1:59 - 是否正確?你想要從C60開始拷貝下一張表格的值,還是再次從C1開始寫入值?你想複製公式和格式,或只是值? – YowE3K

回答

0

我會去如下:

Sub Enter_Formula() 
    Dim sht As Worksheet, summarySht As Worksheet 

    Set summarySht = Worksheets("Summary") '<--| change "Summary" to your actual "Summary" sheet name 

    For Each sht In Worksheets 
     If sht.Name <> summarySht.Name Then 
      With sht.Range("A59:A86") 
       .Parent.Range(.Find(what:=WorksheetFunction.Min(.Cells), lookat:=xlWhole, LookIn:=xlValues), .EntireColumn.Find(what:=WorksheetFunction.Max(.EntireColumn), lookat:=xlWhole, LookIn:=xlValues)).Copy summarySht.Cells(1, Columns.Count).End(xlToLeft).Offset(, 1) 
      End With 
     End If 
    Next 
End Sub 
+0

'WorksheetFunction.Max(.Cells)'不需要'WorksheetFunction.Max(sht.Columns(1))'?從問題來看,它似乎是從A59:A86中的最小值到整個列中最大值的範圍。 – YowE3K

+0

@ YowE3K是的你說得對,我的意思是最大的整列和最小範圍A59:A86 – user7761353

+0

@ user7761353,編輯後將範圍擴展到整列A上的最大值。如果它解決了你的問題,請將答案標記爲已接受。謝謝! – user3598756

0

可能會快一點來計算表達式直接(測試):

Dim ws As Worksheet 

For Each ws In Worksheets 
    ws.Range("Index(A59:A86,Match(Min(A59:A86),A59:A86,0)):Index(A:A,Match(Max(A:A),A:A,0))").Copy ws.Range("C1") 
Next 
相關問題