マイゴール:目に見えるセルは、最初の行に「MTD」が含まれている列からコピーします。コピーしたい可視セルは、75から139までの行だけです。
'searching for column with "MTD" in it
Dim NumCol As Integer
Dim Column As Integer
Column = Workbooks("xx.xlsx").Sheets("Sheet1").UsedRange.Columns.Count
For i = 1 To Column
If Workbooks("xx.xlsx").Sheets("Sheet1").Cells(1, i).Value = "MTD" Then NumCol= i
Next i
'copying visible cells only from Column with MTD and only in rows from 75 to 139
Dim MyRange As Range
'Line below is the debugged line
Set MyRange = Workbooks("xx.xlsx").Sheets("Sheet1").Range(Cells(75, NumCol), Cells(139, NumCol))
MyRange.SpecialCells(xlCellTypeVisible).Copy Destination:=Workbooks ("xy.xlsx").Sheets("Sheet2").Range("A2")
これも使用しようとしましたが、424エラーが表示されました。
Dim MyRange As Range
Set MyRange = Workbooks("xx.xlsx").Sheets("Sheet1").Range(Workbooks("xx.xlsx").Sheets("Sheet1").Cells(75, NumCol), Workbooks("xx.xlsx").Sheets("Sheet1").Cells(139, NumCol))
'This time it debugged this row (error 424)
MyRange.SpecialCells(xlCellTypeVisible).Copy Destination:=Workbooks("xy.xlsx").Sheets("Sheet2").Range("A2")
助けてください。
ありがとうございました:)
おそらく、1004エラーは 'NumCol'に起因する可能性があります。シート( "Sheet1")。セル(1、i).Value = "MTD" 'がforループで決して満たされない場合、' NumCol'は0になります。次の行では、コードが0列目を指しているため、エラーが発生する可能性があります。 – Siva
'MyRange'を削除して、' Columns(NumCol).SpecialCells(xlCellTypeVisible).Copy'を使用してみてください。それが動作するかどうか私に教えてください。 –
@シヴァ私はMsgBoxをループの後に置いて、それが問題かどうかを調べようとしましたが、それは正しいものを見つけました。 – blau