[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『空白セルをハイフンで埋めたい』(しめじ)
C列の空白セルを空白の「一つ上のセルの値」で埋める下記マクロを「一つ上のセルの値」ではなく「-」で埋めたいのですがコードをどのように変更したらよいか解りません。助けてください。
Dim Rw As Long
Dim ADat As String
Dim BVal As Long
For Rw = 3 To Cells(Rows.Count, 3).End(xlUp).Row
With Cells(Rw, 3)
If Rw = 3 Then
ADat = .Value
BVal = .Offset(, 1).Value
Else
If .Value = "" Then
.Value = ADat
Else
ADat = .Value
End If
If .Offset(, 1).Value = "" Then
.Offset(, 1).Value = BVal
Else
BVal = .Offset(, 1).Value
End If
End If
End With
Next
< 使用 Excel:Office365、使用 OS:Windows10 >
On Error Resume Next Range("C3:C" & Cells(Rows.Count, 3).End(xlUp).Row).SpecialCells(xlCellTypeBlanks).Value = "-" On Error GoTo 0
ではどうだろうか? SpecialCells(xlCellTypeBlanks) で空白セルをまとめて選択してそこに-を入れてる。 On Error は空白セルがない場合用。 (ねむねむ) 2022/09/30(金) 10:29
Range("C3", Cells(Rows.Count, "C").End(xlUp)).Replace What:="", Replacement:="-", LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False こういう方法も 置換をつかうと "" も置き換え対象です (´・ω・`) 2022/09/30(金) 10:39
Sub Sample() '不要になったため変数ADatを削除 Dim Rw As Long Dim BVal As Long For Rw = 3 To Cells(Rows.Count, 3).End(xlUp).Row With Cells(Rw, 3) '空白を「-」に変える(C列) If .Value = "" Then .Value = "-" End If '空白を一つ上のセルの値で埋める(一つ右隣り=D列) If Rw = 3 Then BVal = .Offset(, 1).Value Else If .Offset(, 1).Value = "" Then .Offset(, 1).Value = BVal Else BVal = .Offset(, 1).Value End If End If End With Next End Sub (下手の横好き) 2022/09/30(金) 10:47
C列
_____
1
_____
2 りんご
_____
3 _
_____
4 みかん
(しめじ) 2022/09/30(金) 12:19
があるので3行目からデータがあるものと認識していましたが違っていたのですか?
この2つの「Rw = 3」を「Rw = 1」に変えると1行目からデータ処理を開始します。
(下手の横好き) 2022/09/30(金) 13:38
(しめじ) 2022/09/30(金) 16:34
let
ソース = Excel.CurrentWorkbook(){[Name="テーブル1"]}[Content], 変更された型 = Table.TransformColumnTypes(ソース,{{"列1", type text}, {"列2", type text}, {"列3", type text}}), 置き換えられた値 = Table.ReplaceValue(変更された型,null,"−",Replacer.ReplaceValue,{"列3"}) in 置き換えられた値
最近どんなことでもパワークエリで実行させてみています。
(VBAでの回答でなくてすみません。でもパワークエリの方が簡単かなと思いまして・・・
いろんな方法ありますという意味合いで・・・)
(まっち) 2022/09/30(金) 16:59
Sub Sample() Dim Rw As Long Dim BVal As Long For Rw = 1 To Cells(Rows.Count, 3).End(xlUp).Row With Cells(Rw, 3) '空白を「-」に変える(C列) If .Value = "" Then .Value = "-" End If End With Next End Sub D列の処理を省くとこうなります。 (下手の横好き) 2022/09/30(金) 17:24
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.