[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『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.