[[20031106133336]] 『20文字以上入っているセルを2つ以上に分けたい』(初心者) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『20文字以上入っているセルを2つ以上に分けたい』(初心者)

こんにちは
1つのセルに20文字以上入っているものを16文字目からから次のセルに移動させたいのですが どうやったらいいかわかりません。 マクロの使い方を知らないので 分かりやすくお願いします。
あと 住所を区切り位置で分けると文字化け?みたいになってしまい 1−1−1などとあったものが 日付になっていたりします。 そちらの直し方も教えて下さい。
よろしくお願いします。


 上の文章をコピーして、EXCELのシートに貼り付けます。
列幅を400ピクセルにして、文字入力セルと下に余分の空白セルを選択して(10行程度)
編集メニューのフィル→文字の割付をクリックすれば複数行に分けられます。
 (シニア)


 数値Likeなデータが日付や数値になってしまう場合は
 区切り位置ウィザードの3/3の画面で
 日付などに変換されてしまう列のデータ形式を「文字列」
 に指定するとうまくいきませんか。
 (KAMIYA)

 初心者さん、どうでっか、もう作業は完結でっか?	
 あんさんのスレ、今日見つけたもんで、もう済んどるかも知れへんけど一応書	
 いときまっさ。まぁ、暇がでけたら遊んでみておくんなはれ。

 Alt+F11でVBEが開きますさかいな、	
 「挿入」→「標準モジュール」をクリックしておくんなはれ。	
 そこへ下に書いたあるコードをコピペするんですわ、えぇ。	
 次はAlt+Qでエクセルに戻ります。	

 このプロシージャはアクティブなシートに有る20文字以上の文字列をあんさんのご要
 望通りの作業をやってくれまんねんけど、必要な範囲のみの作業やったら、チョッとコ
 ードを変えなあきまへんのんで、その折りは仰有っておくんなはれ。	
   ほな、うまいこといくように...(弥太郎)

 '------------------
 Sub main()
    Dim maxrow As Long, maxcol As Long
    Dim n As Long
    Dim i As Integer
    Dim t As Variant
    maxrow = ActiveSheet.UsedRange.Rows.Count
    maxcol = ActiveSheet.UsedRange.Columns.Count

    For n = maxcol To 1 Step -1

        For i = 1 To maxrow
            If Cells(i, n + 1) = "" And Len(Cells(i, n)) >= 20 Then
                On Error Resume Next
                t = Mid(Cells(i, n), 16, 1)
                On Error GoTo 0
                If Application.IsNumber(t) Then
                    Cells(i, n + 1) = "'" & Mid(Cells(i, n), 16, 240)
                Else
                    Cells(i, n + 1) = Mid(Cells(i, n), 16, 240)
                End If
            End If
        Next i
    Next n

 End Sub


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.