Excel 循环遍历单元格范围B3-B21中的工作簿名称
我有一个vba代码,可以在工作簿中打开一个工作表,并将某个范围复制到同一工作表中。下面的代码,我如何创建一个循环,而不是一次又一次地复制代码来更改单元格引用。而是在B3副本中打开图纸,在B27之前打开b4副本等?我环顾四周,但可能是我使用的搜索词到目前为止找不到解决方案Excel 循环遍历单元格范围B3-B21中的工作簿名称,excel,vba,loops,repeat,named-ranges,Excel,Vba,Loops,Repeat,Named Ranges,我有一个vba代码,可以在工作簿中打开一个工作表,并将某个范围复制到同一工作表中。下面的代码,我如何创建一个循环,而不是一次又一次地复制代码来更改单元格引用。而是在B3副本中打开图纸,在B27之前打开b4副本等?我环顾四周,但可能是我使用的搜索词到目前为止找不到解决方案 工作表(工作表(“内容”).范围(“B3”).值)。激活 范围(“B2”)。选择 要转到下一张图纸,我将手动将B3更改为b4,如何创建一个循环来为定义的Bx范围执行此操作 下面正在执行完整的代码 `Worksheets(Work
工作表(工作表(“内容”).范围(“B3”).值)。激活
范围(“B2”)。选择
要转到下一张图纸,我将手动将B3更改为b4,如何创建一个循环来为定义的Bx范围执行此操作
下面正在执行完整的代码
`Worksheets(Worksheets("Contents").Range("B3").Value).Activate
Range("B2").Select
Count rows in raw data
intRowsused = ActiveSheet.UsedRange.Rows.Count 'count rows used in the table
'Copy
Range("B3:T" & intRowsused).Copy
Sheets("Master Template").Select
Set rng = ActiveSheet.Range("A:T")
lastRow = rng.Find(What:="*", After:=rng.Cells(1), Lookat:=xlPart, LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False).Row
writeRow = lastRow + 1
Range("A" & writeRow).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False `
任何帮助都将不胜感激。
谢谢您可以编辑代码以包含“For”循环。我只想用“B&I”替换您对B3的所有引用
这就是避免使用select的方法
Option Explicit
Sub CopyToMaster()
Dim wb As Workbook
Dim wsContents As Worksheet, wsSource As Worksheet, wsTarget As Worksheet
Dim rngSource As Range, rngTarget As Range, cell As Range
Dim targetRow As Long
Set wb = ActiveWorkbook ' or thisworkbook
Set wsTarget = wb.Sheets("Master Template")
Set wsContents = wb.Sheets("Contents")
targetRow = wsTarget.Cells(Rows.Count, 1).End(xlUp).Row + 1
For Each cell In wsContents.Range("B3:B5")
Set wsSource = wb.Sheets(cell.Value)
Set rngSource = wsSource.Range("B3:T" & wsSource.UsedRange.Rows.Count)
rngSource.Copy
Set rngTarget = wsTarget.Range("A" & targetRow)
rngTarget.PasteSpecial Paste:=xlPasteValues
targetRow = targetRow + rngSource.Rows.Count
Next
MsgBox "Copy complete", vbInformation
End Sub
我有几个问题和答案,显示代码符合你的要求-看一看…嗨,谢谢你回复我-不确定我输入的是什么错误,下面是代码的一部分,我已经修改,以循环通过工作表与你的建议。它以奇怪的顺序在工作表中工作&没有复制所有
工作表(工作表(“内容”)。范围(“B”和“i”)。值)。激活范围(“B2”).选择
Variables'Dim lngreportrowsed As Long Dim lastRow As Long Dim writer low As Long Dim rng As Range Dim targetSheetName As String Dim targetSheetName As found As Boolean Dim sheet As worker Dim i As Long For i=2至27`请不要在注释中添加冗长的代码。旁注,试着在你的代码中解决它,使用你的建议,我没有删除代码的某些方面,这停止了循环。再次感谢-非常感谢。救了我一个任务!!很高兴你能做到!
Option Explicit
Sub CopyToMaster()
Dim wb As Workbook
Dim wsContents As Worksheet, wsSource As Worksheet, wsTarget As Worksheet
Dim rngSource As Range, rngTarget As Range, cell As Range
Dim targetRow As Long
Set wb = ActiveWorkbook ' or thisworkbook
Set wsTarget = wb.Sheets("Master Template")
Set wsContents = wb.Sheets("Contents")
targetRow = wsTarget.Cells(Rows.Count, 1).End(xlUp).Row + 1
For Each cell In wsContents.Range("B3:B5")
Set wsSource = wb.Sheets(cell.Value)
Set rngSource = wsSource.Range("B3:T" & wsSource.UsedRange.Rows.Count)
rngSource.Copy
Set rngTarget = wsTarget.Range("A" & targetRow)
rngTarget.PasteSpecial Paste:=xlPasteValues
targetRow = targetRow + rngSource.Rows.Count
Next
MsgBox "Copy complete", vbInformation
End Sub