私はさまざまな例を見てきましたが、私のニーズに合っていません。 複数のセルに基づいてシートを作成する必要があります。 たとえば、シート1のC5セルでは2を、c6では5を、c7では8を返しました。 シート2では、列eに "e001、e002"という行を作成します。それ以降のセルa3 "E101、.... E105"、 "E401 .... E408" まだvbaを使っていない方が良いですね。EXcelの別のシートにある入力に基づいて行を挿入する
後、私は書かれたが、私の期待に働いていませんでしたコードです。
Public Sub InsertTagNumbers()
Dim ehv_breaker As Long
Dim row_no As Long
Dim breaker11kv As Long
Dim breaker33kv As Long
Dim breaker415V As Long
Dim breaker415E As Long
Dim carry11 As Long
Dim carry33 As Long
Dim carry415 As Long
Dim counter1 As Integer
Dim counter2 As Integer
ehv_breaker = 0
row_no = 5
Sheets("Sheet2").Range("b5").Select
For ehv_breaker = 1 To Sheets("Sheet1").Range("c6").Value
Sheets("sheet2").Cells(row_no, 2).Value = Sheets("sheet1").Cells(6, 4) &
Format$(ehv_breaker, "00")
ActiveCell.Offset(1, 0).Select
row_no = row_no + 1
Next ehv_breaker
For breaker11kv = 1 To Sheets("Sheet1").Range("c7").Value
Sheets("Sheet2").Cells(row_no, 2).Value = Sheets("sheet1").Cells(7, 4) &
Format$(breaker11kv, "00")
ActiveCell.Offset(1, 0).Select
row_no = row_no + 1
Next breaker11kv
carry11 = breaker11kv
For breaker33kv = 1 To Sheets("Sheet1").Range("c8").Value
Sheets("sheet2").Cells(row_no, 2).Value = Sheets("sheet1").Cells(8, 4) &
Format$(breaker33kv, "00")
ActiveCell.Offset(1, 0).Select
row_no = row_no + 1
Next breaker33kv
carry33 = breaker33kv
For breaker415V = 1 To Sheets("Sheet1").Range("c9").Value
Sheets("sheet2").Cells(row_no, 2).Value = Sheets("sheet1").Cells(9, 4) &
Format$(breaker415V, "00")
ActiveCell.Offset(1, 0).Select
row_no = row_no + 1
Next breaker415V
carry415 = breaker415V
For breaker415E = 1 To Sheets("Sheet1").Range("c10").Value
Sheets("sheet2").Cells(row_no, 2).Value = Sheets("sheet1").Cells(10, 4) &
Format$(breaker415E, "00")
ActiveCell.Offset(1, 0).Select
row_no = row_no + 1
Next breaker415E
'For breaker11kv > breaker11kv To Sheets("Sheet1").Range("c11").Value + carry11
Do
Sheets("sheet2").Cells(row_no, 2).Value = Sheets("sheet1").Cells(11, 4) &
Format$(breaker11kv, "00")
ActiveCell.Offset(1, 0).Select
row_no = row_no + 1
breaker11kv = breaker11kv + 1
Loop Until breaker11kv > Sheets("Sheet1").Cells("c11").Value + carry11
'Loop Until breaker11kv > Sheets("Sheet1").cells(c11").Value + carry11
'Next breaker11kv
For breaker33kv = breaker33kv To Sheets("Sheet1").Range("c12").Value + carry33
Sheets("sheet2").Cells(row_no, 2).Value = Sheets("sheet1").Cells(12, 4) &
Format$(breaker33kv, "00")
ActiveCell.Offset(1, 0).Select
row_no = row_no + 1
Next breaker33kv
For breaker415V = breaker415V To Sheets("Sheet1").Range("c13").Value + carry415
Sheets("sheet2").Cells(row_no, 2).Value = Sheets("sheet1").Cells(13, 4) &
Format$(breaker415V, "00")
ActiveCell.Offset(1, 0).Select
row_no = row_no + 1
Next breaker415V
MsgBox "ehv_breaker=" & ehv_breaker
Application.ScreenUpdating = False
End Sub
ようこそStackOverflow。これは無料のコード作成サービスではありませんのでご注意ください。しかし、私たちは、仲間のプログラマー(そして志望者)が自分のコードを書くのを助けることを熱望しています。 [良い質問をするにはどうすればよいですか](http://stackoverflow.com/help/how-to-ask)のヘルプトピックをお読みください。その後、達成したいタスクを完了するために、これまでに書いたVBAコードで質問を更新してください。私たちはあなたを待っています。あなたのコード*を完成させるのに役立ちます。ちょうど、**あなたが**この仕事を自動化するためにVBAを必要とすることに注意してください。だから、あなたはいくつかの学習を開始する必要があります... – Ralph
同じ更新していないのは残念です。しかし、私が働いていたコードを追加して、誰かが助けてくれることを願っています。 – Andee