Excel 在VBA循环中使用多个变量时遇到For而非Next错误的问题

Excel 在VBA循环中使用多个变量时遇到For而非Next错误的问题,excel,vba,loops,Excel,Vba,Loops,我目前正在尝试将相同形式的数据排列在水平表中不同的表中。工作表用日历周(CW6、C7等)标记。我还将行和列定义为变量,以便查询总是跳转到表中的下一个字段 不确定这是否有效,但我目前被这个错误困扰 因为没有下一个 代码如下: 子聚合_数据() Dim cw_计数器为整数 对于cw_计数器=工作表(“VBA更新”)。范围(“D6”)。值到工作表(“VBA更新”)。范围(“D7”)。值 将列设置为整数 将行设置为整数 对于第2列到第54列 对于第4行到第14行 工作表(“VBA YTD Engage”

我目前正在尝试将相同形式的数据排列在水平表中不同的表中。工作表用日历周(CW6、C7等)标记。我还将行和列定义为变量,以便查询总是跳转到表中的下一个字段

不确定这是否有效,但我目前被这个错误困扰

因为没有下一个

代码如下:

子聚合_数据()
Dim cw_计数器为整数
对于cw_计数器=工作表(“VBA更新”)。范围(“D6”)。值到工作表(“VBA更新”)。范围(“D7”)。值
将列设置为整数
将行设置为整数
对于第2列到第54列
对于第4行到第14行
工作表(“VBA YTD Engage”)。单元格(“行、列”)。值=工作表(“CW”和CW_计数器)。范围(“行、列”)。值
下一个
端接头
从不同的工作表复制范围
选项显式
子聚合_数据()
Const crgAddress As String=“B4:BB14”'复制范围地址
Const swsLeft As String=“CW”'左源工作表名称
Const dwsName As String=“VBA YTD Engage”'目标工作表名称
Const uwsName As String=“VBA Update”'更新工作表名称
Const uwsminadress As String=“D6”更新工作表最小地址
Const uwsMaxAddress As String=“D7”更新工作表最大地址
当长度=1时,常数间隙
将wb设置为工作簿:设置wb=ThisWorkbook包含此代码的工作簿
'定义源工作表名称右最小值和最大值。
长度为“更新最小值”的Dim nMin
将nMax设置为长“更新最大值”
带wb.工作表(uwsName)
nMin=.Range(uwsminadress).Value
nMax=.Range(uwsMaxAddress).Value
以
'定义目标范围
将图纸尺寸设置为范围:设置图纸=工作表(dwsName)。范围(CRGADRESS)
"明确以下内容。
drg.Resize(drg.Worksheet.Rows.Count-drg.Row+1)。ClearContents
'确定复制范围行数。
尺寸crCount的长度:crCount=drg.Rows.Count
'导入数据(范围)。
变光srg作为“范围”源范围
Dim n等长“源工作表右计数器
Dim wsCount As Long“源工作表计数器(用于MsgBox)
对于n=nMin到nMax
'如果工作表不存在,则防止出错。
出错时继续下一步
设置srg=wb.工作表(swsLeft&n).范围(CRGADRESS)
错误转到0
“收到。
如果不是,srg什么都不是
图纸值=图纸值
wsCount=wsCount+1
设置srg=无
设置drg=drg.Offset(crCount+Gap)’,否则它将被覆盖。
如果结束
下一个
“通知。
MsgBox“从工作表中复制了数据(&wsCount&)。”_
VBA信息,“成功”
端接头

现在您的代码已经正确缩进,您能看到吗?@Gass,我看到三个For循环,一个For循环。