Merhaba. Elimdeki makro kodunu 30 sayfada birden çalışacak hale getirmem lazım. Vba bilmiyorum çok fazla. bu kodlarıda internetten araştırarak buldum. Yazdığım makro sadece sheet1 de çalışıyor ama işlemleri 30 sheet te birden yapması lazım data sayısı en az 24x65000 olduğu için. Şöyle anlatıyım, sheet1, sheet2,...,sheet30 un A sütununa değerler girilcek ve makro bu değerleri küçükten büyüğe sıralayıp gerekli işlemleri yapacak. yardımcı olabilirseniz çok sevinirim.
Kod:
Sub deneme()
Range("A1").Select
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("A1:A65000") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange Range("A1:A65000")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
n = Application.WorksheetFunction.CountA(Range("A1:A65000"))
If n Mod 2 = 0 Then
m = n / 2
Else
m = (n + 1) / 2
End If
For i = m To n - 1
Cells(i, 3) = Abs(Cells(i, 1) - Cells(i + 1, 1))
Cells(i, 4) = Application.StDev(Range("A1:A" & i))
If Cells(i, 4) < Cells(i, 3) Then
Cells(i, 5) = i + 1
End If
Next i
sinir = Cells(Application.WorksheetFunction.Min(Range("E1:E65000")), 1)
For l = m To n
If Cells(l, 1) >= sinir Then
Range("A" & l).Interior.Color = RGB(255, 0, 0)
End If
Next l
Columns("B:F").Select
Selection.Delete Shift:=xlToLeft
Cells(1, 2) = " Büyük Hasar Siniri"
Cells(1, 3) = sinir
End Sub
Son düzenleme:
