投稿/コメントを表示します。

小川様
いつもお世話になっております。
ワークシートを追加し、シート名を取引先名称に変更するマクロに関する質問です。
復習のために小川さんの言うマクロの「型」でワークシートを追加してみようと下記のようにマクロを組んでみました。


Sub sheetTsuika2()
Dim ws As Worksheet
Dim sNamae
Dim cLst As Long
Dim cGyo As Long
Set ws = Worksheets("main")
cLst = Range("B" & Rows.Count).End(xlUp).Row

ws.Range("A1:G" & cLst).Sort Key1:=Range("B1").Value,  _
Order1:=xlAscending, Header:=xlYes

For cGyo = 2 To cLst
If sNamae <> ws.Range("B" & cGyo).Value Then
If cGyo <> 2 Then
Worksheets("main1").Copy after:=ws
ActiveSheet.Name = sNamae
End If
sNamae = ws.Range("B" & cGyo).Value
End If
Next cGyo
Worksheets("main1").Copy after:=ws
ActiveSheet.Name = ws.Range("B" & cGyo - 1).Value
End Sub

End sub の1行前の記述に関する質問です。
シートmainの最終行は317行(宮崎繊維)のはずなのに
cGyo=318となってしまいます。
どこで1行加えられているのでしょうか?
cGyo-1とすればいい(そうすれば宮崎繊維がシート名となる)ことは理解できるのですが、
cGyo=318となってしまう理由がわかりません。
自分で作っておきながら、なぜそうしなければいけないのかよくわからないというのも妙な話ですが、教えていただけないでしょうか。
よろしくお願いします。

2018/01/10 16:39