Excelでマクロ実行後、編集→置換をクリック→問題が発生!
Windows XP Home Edition
Excel 2002
下記1のマクロの実行後に必ず、
編集→置換をクリックしますと、画像の画面が出ます。
そしてExelを再起動すると、編集→置換をクリックしても問題なく使用できます。
しかし、再度、下記1のマクロを実行後、
●編集→置換をクリック→画像の画面が出ます。
何回、行ってみても同じです。←このような事はよくあるのでしょうか?
下記1のマクロ自体は、正常に動作します。
しかし、
次の作業で、別のマクロを実行しますと、動作はするのですが、
下記2の一部のコードの「置換」が行われなくなります。
素通りしてしまいます。非常に困ります。
しかし、この「別のマクロ」に On Error Resume Next を追記すると
動作します(コードの「置換」も行われます)。
しかし、この直後も必ず、●編集→置換をクリック→画像の画面が出ます。
下記1の「いい」マクロだけを除いて実行するマクロは問題はありません。
ですから、次の作業で、下記2の一部のコード(置換)も、
On Error Resume Next を追記しなくても正常動作してくれます。
どうも、「下記1」の「いい」に問題があるように思いますが・・・
つなぎ合わせ過ぎでしょうか・・・
原因がはっきり解かりませんが、ただ、今までに、マクロの実行作業中にあまり、
「編集→置換をクリック」の操作はしたこはないので、発覚することがなかったのかもしれません。
●をなんとか解決できませんでしょうか?
参考:下記2の#DIV/0! #VALUE! は、数値以外の空白セル 、0 、文字等の為になります。
(これは直接的な原因ではないと思います)
何卒、よろしくお願い致します。
Call 下記1
Private Sub 下記1()
Call いい
Call うう
Call ええ
Call おお
End Sub
Private Sub いい()
Dim i As Integer
Dim nin As Range
Windows("123.xls").Activate
Sheets.Add after:=Worksheets(Worksheets.Count), Count:=1
For i = 1 To Worksheets.Count - 1
Worksheets(i).Activate
With Worksheets(i)
For Each nin In .Range("B4", .Range("B4").End(xlDown))
If nin.Cells.Value = 1 Then
nin.Offset(0, -1).Copy Cells(2, 6)
End If
Next nin
End With
Call かか
Range("A23", Range("A23").End(xlDown)).Copy _
Destination:=Worksheets(Worksheets.Count).Range("IV3").End(xlToLeft).Offset(0, 1)
Next i
End Sub
Private Sub かか()
Dim fWord As Integer, fAdd, c
fWord = Cells(2, 6).Value
Range("L3").Copy Range("A23")
With Range("G:G")
Set c = .Find(fWord, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
fAdd = c.Address
Do
c.Offset(0, 5).Copy
Range("A65536").End(xlUp). _
Offset(1, 0).PasteSpecial Paste:=xlAll, _
Transpose:=True
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> fAdd
End If
Set c = Nothing
End With
'次に、同様にH列にも動作させる
With Range("H:H")
Set c = .Find(fWord, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
fAdd = c.Address
Do
c.Offset(0, 4).Copy
Range("A65536").End(xlUp). _
Offset(1, 0).PasteSpecial Paste:=xlAll, _
Transpose:=True
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> fAdd
End If
Set c = Nothing
End With
End Sub
ーーーーーーーーーーーーーーーーーーーーー
'下記2
With Range(Range("A2").End(xlDown).Offset(3, 6), Range("A65536").End(xlUp).Offset(0, 25))
.Replace What:="#DIV/0!", Replacement:="0.0", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
.Replace What:="#VALUE!", Replacement:="0.0", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End With
お礼
ご回答誠に有難うございました。
補足
早速のご回答誠に有難うございます。 私の頭では、まだ、分かりませんが。 お答えのものは、Worksheetsのセルに記載された値に対しての機能では・・・ マクロコードにも対応してるのでしたら、どおやって使用するのかな。。