为什么嵌套循环会导致运行时错误13?

时间:2020-01-04 10:32:41

标签: excel vba

我编写了一个宏,该宏用于构造大量数据,并节省了我用于手动打孔数字等的作用。该宏是分阶段编写的,每个部分都经过隔离测试,然后集成到循环中或自身的主要代码中-这样,每段代码都经过测试,因此可以根据我的意图运行。

这部分代码的目标是循环遍历工作表的每一行,如果第9列第I行的值与第9列第I-1行的值不同,则它将插入新行(求和行)。此操作将在每个工作表中执行,因此会嵌套循环。当我孤立地编写此宏时,没有嵌套循环,它运行良好。

编辑:为澄清起见,当且仅当class ProjectImageUploadView(APIView): authentication_classes = [] permission_classes = [] def post(self, request,category): file = request.data['file'] data={ 'image':file, 'category':ProjectCategory.objects.get(pk=category) } ProjectImage.objects.create(**data) return JsonResponse(json.dumps({'message': "Uploaded"}), status=200, safe=False) def __str__(self): return self.title不相等时,代码才插入一行。因此,我问他们是否相同,如果相同,则什么也不做-否则,插入一行(即Cells(I, PrGr) = Cells(I - 1, PrGr)不相等。)

在嵌套循环中运行它会导致运行时错误13,在带有“ If Cells(I,PrGr)= Cells(I-1,PrGr)”的行上键入不匹配 ”。在调试器中,当我强制其继续执行时,它会执行预期的操作-为每张工作表创建总和行。无论我将哪张纸设置为起始纸,都会发生这种情况。

我尝试通过使用 For This中的每一个ws进行测试来更改循环的逻辑。和现在我已经将对于J = 1到WS_ant 的逻辑进行测试>。两者都会导致错误。我也四处寻找线索,但都没有找到适合此问题的任何解决方案。

有人对这里发生的事情以及如何解决有什么头绪吗?

代码:

Cells(I, PrGr) = Cells(I - 1, PrGr)

1 个答案:

答案 0 :(得分:0)

借助Vitaliy Prushak的帖子的见解,由于单元格包含文本,因此我已将代码从If Cells(I, PrGr) = Cells(I - 1, PrGr) Then更改为If Cells(I, PrGr).Text = Cells(I - 1, PrGr).Text Then。这将问题进一步推到了代码中,但是使用相同的解决方案解决了。

宏现在可以正常运行了,谢谢您的帮助。