|
▼林 さん:
こんにちは。
振っておきながら忙しくて見られませんでした。
ichinoseさんも仰られていますが、同じ理由で林さんのコードは解読してません。
あとはB列のデータも何が入っているのかわからないです。
(なので変数はVariantです。)
だいたい、こんな感じの事をしたいのでしょうか?
(もっとスマートに組めそうな気もしますが・・・私の能力限界)
Option Explicit
Option Base 1
Sub test()
Dim stdat() As Variant, cydat() As Variant, lndat As Long, i As Long
With ThisWorkbook
With .Sheets("Stress_Data")
lndat = .Cells(.Rows.Count, 1).End(xlUp).Row
stdat = .Range("A1", .Cells(lndat, 2)).Value
End With
ReDim cydat(5, 1)
For i = 2 To UBound(stdat) - 1
If stdat(i, 1) > stdat(i - 1, 1) And _
stdat(i, 1) > stdat(i + 1, 1) Then
ReDim Preserve cydat(5, UBound(cydat, 2) + 1)
cydat(1, UBound(cydat, 2)) = UBound(cydat, 2) - 1
cydat(2, UBound(cydat, 2)) = stdat(i, 1)
cydat(4, UBound(cydat, 2)) = stdat(i, 2)
ElseIf stdat(i, 1) < stdat(i - 1, 1) And _
stdat(i, 1) < stdat(i + 1, 1) Then
cydat(3, UBound(cydat, 2)) = stdat(i, 1)
cydat(5, UBound(cydat, 2)) = stdat(i, 2)
End If
Next i
cydat(3, UBound(cydat, 2)) = stdat(i, 1)
cydat(5, UBound(cydat, 2)) = stdat(i, 2)
With .Sheets("Cycle_vs_MaxSg")
.Columns("A:E").ClearContents
.Range("A1").Resize(UBound(cydat, 2), 5).Value = _
Application.Transpose(cydat)
.Range("A1:E1").Value = _
Array("Cycle", "Max_Stress", "Min_Stress", "Max_ColB", "Min_ColB")
End With
End With
End Sub
>>自分で勉強すればいいって話なんですが
>本来は、そうですし、ここはそういう方が対象のサイトですよね!!
に、同感なのであえて説明はつけていません。
少し見てみてくださ〜い^^
これ、コードの解読や記述が御自分でも出来ないと
実験データの信憑性を疑われた時に困ってしまうと思うので
仮に出来たとしても、しっかり理解された方が良いですよ?
|
|