|
▼にしもり さん:
>Mは或るシステムからダウンロードしてるためもとはcsvでしたので混乱しました。
>M.xlsとして仰るとおりOpenメソッドで開くようにいたします。
元がcsvファイルなら、Openメソッドで Bookと同じように 開けますよ
>が、Rangeメソッドが失敗 と出ます。書き方が間違っていますでしょうか。
> '↓ここが黄色になります
> If Range(Cells(i, 1)).Value = Range(Cells(i - 1, 1)).Value Then
このばあい、Rangeは不要ですよね?
Sub Macro1()
Dim i As Long 'Integer
Dim j As Long 'Integer
Dim SendID As Long '◆追加
Workbooks.Open Filename:="U:\M.xls" '『M.csv』 でもいいです
Worksheets("Sheet1").Activate
' Range("A1").Select
' Range(Selection, Selection.End(xlDown)).Select
' Range(Selection, Selection.End(xlToRight)).Select
' Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Key2:=Range("B2") _
' , Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
' False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:= _
' xlSortNormal, DataOption2:=xlSortNormal
With Range("A1").CurrentRegion
.Sort Key1:=.Columns(1), Key2:=.Columns(2), Header:=xlYes
'↓データの在る最終行まで
For i = 2 To .Rows.Count
If .Cells(i, 1).Value <> .Cells(i - 1, 1).Value Then
SendID = 1
.Cells(i, 3).Value = SendID
Else
If .Cells(i, 2).Value <> .Cells(i - 1, 2).Value Then
SendID = SendID + 1
End If
.Cells(i, 3).Value = SendID
End If
Next
End With
End Sub
のようではどうですか?
|
|