「深さ (m)」の値を持つセルを含む行から始まり、次の空白行で終わるデータをコピーしようとしています。これらの間の行数はさまざまで、これを行うには 400 のスプレッドシートがあります。
エラー:
Run-time error '1004':
Application-defined or object-defined error
これが私のコードです:
Sub CopyDepth()
Dim rownum As Long
Dim startrow As Long
Dim endrow As Long
Dim lastrow As Long
rownum = 1
colnum = 1
lastrow = Worksheets("Profile").Range("A65536").End(xlUp).Row
With ActiveWorkbook.Worksheets("Profile").Range("a1:a" & lastrow)
For rownum = 1 To lastrow
Do
If .Cells(rownum, 1).Value = "Depth (m)" Then
startrow = rownum
End If
rownum = rownum + 1
If (rownum > lastrow) Then Exit For
Loop Until .Cells(rownum, 1).Value = ""
endrow = rownum
rownum = rownum + 1
Worksheets("Profile").Range(startrow & ":" & endrow).Copy
Sheets("data").Select
Range("A1").Select
ActiveSheet.Paste
Next rownum
End With
End Sub
次の行を変更すると機能します。
Loop Until .Cells(rownum, 1).Value = ""
これに:
Loop Until .Cells(rownum, 1).Value = "Doe (Jane, corrected):"
残念ながら、そのテキストはブックごとに異なるため、使用できません。
ここに私のデータのサンプルがあります:
Big Lake
29 October, 2012
Joe & Jill
Blue [Big] Lake, Utah (USA)
OLD meter (#00314)
Depth (m) T (deg-C)
0 31.21
1 32.64
2 34.70
3 36.76
4 36.92
5 36.92
6 36.12
7 35.47
8 35.05
9 34.32
10 33.96
Doe (Jane, corrected):
N: 8.0m
S: 8.0m
本当にコピーしたいのは、深さ (m) から 10 33.96 までを新しいシートにコピーすることです。私はしばらくこれを選んでいますが、それを得ることができません。デバッガーは次の行を指します。
Worksheets("Profile").Range(startrow & ":" & endrow).Copy
どんな援助も素晴らしいでしょう。ありがとうございます!-スーザン