【发布时间】:2018-01-31 11:47:32
【问题描述】:
我浏览了各种示例,但不符合我的需要。 我需要根据多个单元格填充工作表。 例如,在工作表 1 C5 单元格中我的值为 2,在 c6 中我有 5,在 c7 中我有 8。 然后在工作表 2 中,我将在 a 列中创建行作为“e001,e002”,然后在单元格 a3 中创建“E101,....E105”,然后是“E401....E408” 如果它不使用 vba 会更好,因为我还没有与之交谈。
以下是我编写的代码,但没有达到我的预期。
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。请注意,这不是免费的代码编写服务。然而,我们渴望帮助其他程序员(和有志者)编写自己的代码。请阅读How do I Ask a Good Question 上的帮助主题。之后,请使用您迄今为止编写的 VBA 代码更新您的问题,以完成您希望完成的任务。我们会在这里等你。随时准备协助并帮助您完成您的代码。请注意,您将需要 VBA 来自动执行此任务。所以,你应该开始学习一些...
-
很抱歉没有更新。但是我已经添加了我正在工作的代码,希望有人能提供帮助。
标签: excel