Excel VBA代码有问题,尽管输入表单中的所有行都已填写,但警告框仍会出现

Excel VBA代码有问题,尽管输入表单中的所有行都已填写,但警告框仍会出现,excel,vba,loops,Excel,Vba,Loops,很抱歉,如果我的问题听起来很愚蠢,但我真的不知道我的VBA代码出了什么问题,而且由于我是Excel新手,我无法找出我做错了什么 这是我的源代码,旨在在此之前将信息存储在另一个工作表中。它工作正常,但随着列表的增加,它不再工作 编辑:我有两张工作表。 输入是用户表单所在的位置 IncidentDatabase是我想要存储信息的地方 子更新工作表() Dim historyWks作为工作表 将输入设置为工作表 暗淡的下一步一样长 长的 暗myRng As范围 像字符串一样模糊 Dim myCopy

很抱歉,如果我的问题听起来很愚蠢,但我真的不知道我的VBA代码出了什么问题,而且由于我是Excel新手,我无法找出我做错了什么

这是我的源代码,旨在在此之前将信息存储在另一个工作表中。它工作正常,但随着列表的增加,它不再工作

编辑:我有两张工作表。 输入是用户表单所在的位置 IncidentDatabase是我想要存储信息的地方

子更新工作表()
Dim historyWks作为工作表
将输入设置为工作表
暗淡的下一步一样长
长的
暗myRng As范围
像字符串一样模糊
Dim myCopy2作为字符串
暗淡的迈塞尔山脉
'要从输入表复制的单元格-某些单元格包含公式
myCopy=“D10、D12、D14、D16、D18、D20、D22、D24、D26、D28、D30、D32、D36、D40、D42、D46、D48、D50、D52、D54、D56、D58、D60、D62、D64、D68、D70、D72、D76、D78、D80、D84、D86、D88、D90、D92、D94、D96、D98、D100、D102、D104、D106、D108”
myCopy2=“D111、D113、D117、D119、D121、D123、D125、D127、D129、D131、D135、D137、D139、D141、D143、D145、D147、D149、D151、D153、D157、D161、D166、D168、D172、D176、D180、D182、D184、D189、D191、D193、D197、D199、D201、D205、D207、D209、D213、D215、D217、D219、D222”
设置inputWks=工作表(“输入”)
Set historyWks=工作表(“意外数据库”)
历史作品
nextRow=.Cells(.Rows.Count,“A”).End(xlUp).Offset(1,0).Row
以
有输入
设置myRng=Application.Union(.Range(myCopy),.Range(myCopy2))
以
设置inputWks=工作表(“输入”)
Set historyWks=工作表(“意外数据库”)
历史作品
nextRow=.Cells(.Rows.Count,“A”).End(xlUp).Offset(1,0).Row
以
有输入
设置myRng=.Range(myCopy).Range(myCopy2)
如果Application.CountA(myRng)myRng.Cells.Count,则
MsgBox“请填写所有单元格!”
出口接头
如果结束
以
历史作品
带.Cells(nextRow,“A”)
.Value=现在
.NumberFormat=“mm/dd/yyyy hh:mm:ss”
以
.Cells(nextRow,“B”).Value=Application.UserName
oCol=3
对于myRng.细胞中的每个菌丝体
historyWks.Cells(nextRow,oCol).Value=myCell.Value
oCol=oCol+1
下一个迈塞尔
以
'清除包含常量的输入单元格
有输入
出错时继续下一步
带.Range(myCopy).Cells.SpecialCells(xlCellTypeConstants)
.ClearContents
Application.GoTo.Cells(1)”,滚动:=True
以
错误转到0
以
结束子行

 Set myRng = .Range(myCopy).Range(myCopy2)
这就是问题所在。如前所述,它告诉Excel在myCopy中查找myCopy2,而不是在myCopy中。您希望使用UNION将两者结合起来

Set myRange = Union(.range(mycopy),.range(mycopy2))
线路

 Set myRng = .Range(myCopy).Range(myCopy2)
这就是问题所在。如前所述,它告诉Excel在myCopy中查找myCopy2,而不是在myCopy中。您希望使用UNION将两者结合起来

Set myRange = Union(.range(mycopy),.range(mycopy2))

是否存在一个可复制点,它停止工作?您可以用F8调试或设置断点来检查此问题吗?当你可以在historyWks=myRng之间直接赋值时,为什么还要循环?@QHarr说实话,我对VBA真的很陌生,就像我昨天学到的那样。所以我甚至不知道我在做什么。基本上我的范围是空白的。如果不是预期的,您需要确定它为什么有空格。myRange的地址是期望的地址吗?您可能会在代码中稍后清除单元格,因此这些清除的单元格和您的Counta单元格区域之间是否有重叠?是否有一个可复制点它停止工作?您可以用F8调试或设置断点来检查此问题吗?当你可以在historyWks=myRng之间直接赋值时,为什么还要循环?@QHarr说实话,我对VBA真的很陌生,就像我昨天学到的那样。所以我甚至不知道我在做什么。基本上我的范围是空白的。如果不是预期的,您需要确定它为什么有空格。myRange的地址是期望的地址吗?您可能会在代码的后面清除单元格,因此这些清除的单元格和您的Counta单元格区域之间是否有重叠?我明白了…现在我明白问题的根源了。谢谢你的解释。现在我这样做了,我在另一个部分私有子工作表_SelectionChange(ByVal目标作为范围)上遇到了这个问题。据说我没有变量。我该如何解决这个问题呢?也许最好把它作为一个单独的问题与我看到的SelectionChange的代码一起提出来……现在我明白了问题的来源。谢谢你的解释。现在我这样做了,我在另一个部分私有子工作表_SelectionChange(ByVal目标作为范围)上遇到了这个问题。据说我没有变量。我该如何解决这个问题呢?也许最好把它作为一个单独的问题与selectionchange的代码放在一起