我有一个vba脚本,该脚本在一定范围内运行,并且如果数字是数字,则添加(或减去)数字。
当我使用的文件是csvs或xls文件时,此脚本有效。 但是,当我尝试通过它运行txt文件时,此行代码在第一个单元格上出现不匹配错误。
If (SourceWb.Sheets(1).Cells(r, c) <> "") Then
有人对此有修复程序吗? 完整的相关脚本如下。
For r = startR To endR
For c = startC To endC
If (SourceWb.Sheets(1).Cells(r, c) <> "") Then
If IsNumeric(SourceWb.Sheets(1).Cells(r, c)) = True Then
If plusMinus = "+" Then
TempWb.Sheets(1).Cells(r, c).Value2 = TempWb.Sheets(1).Cells(r, c).Value2 + SourceWb.Sheets(1).Cells(r, c).Value2 * trueUp
Else
TempWb.Sheets(1).Cells(r, c).Value2 = TempWb.Sheets(1).Cells(r, c).Value2 - SourceWb.Sheets(1).Cells(r, c).Value2 * trueUp
End If
End If
End If
Next c
Next r
答案 0 :(得分:0)
不匹配错误表示VBA无法执行其尝试实现的操作,因为类型或值不兼容。在这种情况下,单元格的值会给您一个错误2029(#NAME?)。错误是具有特定状态的特定值。因此,当您尝试获取TempWb.Sheets(1).Cells(r, c).Value2 <> ""
时,VBA期望左侧有类似字符串的内容。但是现在出现错误,因此无法进行比较。
因此,根本的问题是,不能像CSV到Excel电子表格一样吸收txt文件。您需要打开文件并逐行读取其内容,然后将内容放入变量中,然后对该变量进行操作。一个简单的Google request将为您提供大量示例,赠予和操作方法。抱歉让您像这样挂起,但是,至少应该自己尝试一下。