[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『空白セルを無視するには』(take)
以前お世話になったのですが以下マクロした場合 空白セルがあるとマクロの動作が止まってしまいます。 空白セルが存在しても最後の並び替えで最下行に移動、または無視 したいのですがどのような修正が必要でしょうか? よろしくお願いします。
Sub Sample()
Dim c As Range
Dim d As Range
Dim s As String
Dim tmp As String
Dim shM As Worksheet
Dim shD As Worksheet
Set shD = Sheets("見積書提出一覧") '★データシート
Set shM = Sheets("Sheet2") '★法人格リストシート
If shD.Range("X5").Value = "" Then
MsgBox "データがありません。管理者に連絡してください"
Exit Sub
End If
shM.Columns("B:E").ClearContents
'フィルターオプションによる一意の名前リストの作成
shD.Range("X4", shD.Range("X" & Rows.Count).End(xlUp)).AdvancedFilter xlFilterCopy, , shM.Range("C1"), True
'法人格消去とフリガナ設定
With CreateObject("VBScript.RegExp")
.Global = True
.Pattern = "([\$\?\*\+\.\|\{\}\\\[\]\(\)])"
tmp = Join(WorksheetFunction.Transpose(shM.Range("A1", shM.Range("A" & Rows.Count).End(xlUp))), vbTab)
.Pattern = Replace(.Replace(tmp, "\$1"), vbTab, "|")
For Each c In shM.Range("C1").CurrentRegion
c.Offset(, 1).Value = Application.GetPhonetic(.Replace(c.Value, ""))
Next
End With
'並び替え
shM.Range("C1").CurrentRegion.Sort Key1:=shM.Range("D1"), Order1:=xlAscending, Header:=xlYes
End Sub
< 使用 Excel:Excel2016、使用 OS:Windows10 >
shM.Range("C1",shM.Range("C" & rows.count).end(xlup))
と
shM.Columns("c:d")
とするとどうなりますか。
(マナ) 2017/04/30(日) 19:46
VBScript.RegExpの正規表現なのかなと思い
web検索いろいろしてみたのですがさっぱり解決の糸口には
当たりませんでした。質問してよかったです。
>2箇所のCurrentregionをやめて
Currentregionって、かたまりのセル?
空白とどのように関わるか解りませんが
希望の動作しています。
ありがとうございました。
(take) 2017/04/30(日) 20:04
(take) 2017/05/01(月) 01:13
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.