|
▼Sora さん:
こんにちは。
不具合の場合は、ExcelとWindowsのバージョンを記述して下さいね!!
どんなときに「型が一致しません」というエラーがでるのだろうか考えてみました。
Sheet1のO列に数字以外のデータが入っていた場合(例えば、"aaa")、
このエラーが発生します。
このO列は、1以上の整数が入っている事が条件です。
>皆さんに書いて頂いたことを参考にチャレンジしてみました。
>そのなかで、ichinoseさんから頂いたご回答について
>再度お伺いしたいことがありましたので、
>大変に申し訳ありませんがご教授頂ければと思います。
>
>お伺いしたいことについでですが…
>ichinoseさんのVBを実行してみたところ、
>結果としては満足できるように別シートに複写することができたのですが
>その途中で「型が一致しません」というメッセージが表示されてしまいました。
>デバックしたみたところ、下記の線で囲んでいるところが黄色くなり、
>そこを修正しなければいけないようです。
>
>ネットでいろいろと調べてみたのですが
>どうしても自力で解決できませんでしたので、
>もしこの件にお付き合い頂けるようでしたらご教授願えればと思います。
>
>
>Sub test()
on error resume next
> Dim sht1 As Worksheet
> Set sht1 = Worksheets("sheet1")
> odx = 2 'sheet2の書き込み行
> For idx = 2 To sht1.Cells(sht1.Rows.Count, 1).End(xlUp).Row
> '↑idxは、Sheet1の行
> With Worksheets("sheet2")
> repcnt = sht1.Range("o" & idx).Value
> '↑繰り返し数の取得
>----------------------------------------------------------------------
> .Range(.Cells(odx, 1), .Cells(odx + repcnt - 1, 14)).Value = _
> sht1.Range(sht1.Cells(idx, 1), sht1.Cells(idx, 14)).Value
>----------------------------------------------------------------------
if err.number<>0 then
msgbox "Sheet1のカレント行: " & idx & vblf & _
"Sheet2のカレント行: " & odx
stop
end if
> 'A列からN列はそのまま代入
> s_add = .Range("o" & odx).Address
> 'sheet2のO列の書き込みセルの絶対アドレス
> With .Range(.Cells(odx, 15), .Cells(odx + repcnt - 1, 15))
> .NumberFormat = "0""/" & repcnt & """"
> .Formula = "=(row()-row(" & s_add & ")+1)"
> .Value = .Value
> End With
> odx = odx + repcnt
> End With
> Next idx
>End Sub
等としてエラーになっている行に正しくデータが入っているかを確認してみて下さい。
それでも駄目なら、
このエラーになっている行のセルの内容を書式なども合わせて記述してみて下さい。
この後の返信は、夜になってしまいますが・・・・。
|
|