EXcel vba :运行时错误‘13’,类型不匹配

代码:
Sub 保留值()
For i = 1 To Sheets.Count '遍历所有工作表
For j = 1 To 256 '遍历列。若是.xlsx文档,此处的256可改为改为16384
For k = 1 To Cells(65536, j).End(3).Row '遍历行。
'若是.xlsx文档,此处65536可改为1048576
If Sheets(i).Cells(k, j) <> "" Then
Sheets(i).Cells(k, j) = Sheets(i).Cells(k, j)
End If
Next k
Next j
Next i
End Sub
错误 的地方:If Sheets(i).Cells(k, j) <> "" Then
这是什么问题?怎么解决。

第1个回答  2015-08-29
试试用这句容错:
If Sheets(i).Cells(k, j) & "" <> "" Then

下面这句
For k = 1 To Cells(65536, j).End(3).Row

最好改为:
For k = 1 To Sheets(i).Cells(65536, j).End(3).Row本回答被提问者和网友采纳
第2个回答  2019-03-17
你cells(i,4)对应的应该是工作表的D列,现在是
2019年2月21日
这样的,要么是文本要么是日期型数据,即使是文本,你传入到
DATEVALUE()函数应该也会报错的。还有datevalue(date)这里,都要检查一下。
第3个回答  2015-08-29
运行没问题,只是看样子你的if还没写完追问

运行 我在另一个工作簿也可以 问题是现在这个工作簿 不行。 这是什么问题呢?

追答

那是否把你不能运行的表格发上来看看呢?这样才好对症下药丫

第4个回答  2015-08-29
代码没问题,我这里运行正常。追问

运行 我在另一个工作簿也可以 问题是现在这个工作簿 不行。 这是什么问题呢?

相似回答