样本数据:
0votes
https://stackoverflow.com/questions/32382401/autohide-multiple-rows-in-excel/32383360#32383360
vbaexcel
answered Sep 3, 2015 at 18:53
0votes
Accepted
https://stackoverflow.com/questions/32273121/corretc-excel-vba-macro-to-return-the-values-as-text-and-as-date/32273219#32273219 'clickable format
vbaexcel
answered Aug 28, 2015 at 14:18
我想插入一行之间的选票和网址行,如果答案是不接受和网址后立即投票行的目的是使分组5行最终转置数据在一个单一的行。
这是我的代码:
Sub insertrow()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet2")
Last = Cells(Rows.Count, "A").End(xlUp).Row
For i = Last To 1 Step -1
If (Cells(i, "A").Value) Like "*vote*" And (Cells(i + 1, "A").Value) <> "Accepted" Then
Cells(i + 1, "A").EntireRow.Insert
End If
Next i
End Sub
我得到运行时错误13类型不匹配的以下行,虽然这个程序运行成功昨天晚上类似的数据。
If (Cells(i, "A").Value) Like "*vote*" And (Cells(i + 1, "A").Value) <> "Accepted"
任何帮助都将不胜感激。
1条答案
按热度按时间lsmepo6l1#
已对您提供的数据和代码进行快速测试,没有任何问题。但是,代码存在问题:虽然您将特定工作表分配给变量,但仍继续使用 ActiveSheet。很可能此工作表不是包含示例数据的工作表,并且可能包含导致类型不匹配错误的数据。
在Excel中编写VBA程序时,应始终准确限定要在哪个工作表上工作。一种方法是使用
With
-语句。注意在Cells
、Range
、Rows
和Columns
的 * 每个 * 示例之前添加一个点-以告知VBA您正在引用With
-语句的对象。或者,如果你更喜欢这样:
类型不匹配之类的错误通常可以通过使用调试器检查相关数据(在本例中为2个单元格的内容)来很容易地发现。