在VBA中循环浏览文本文件时出现不匹配错误
我有一个vba脚本,它可以在一个范围内运行,如果数字是数字,则可以进行加(减)运算 当我使用的文件是CSV或xls文件时,此脚本可以工作。 然而,当我试图通过它运行一个txt文件时,我在这行代码的第一个单元格中得到了一个不匹配的错误在VBA中循环浏览文本文件时出现不匹配错误,vba,type-mismatch,Vba,Type Mismatch,我有一个vba脚本,它可以在一个范围内运行,如果数字是数字,则可以进行加(减)运算 当我使用的文件是CSV或xls文件时,此脚本可以工作。 然而,当我试图通过它运行一个txt文件时,我在这行代码的第一个单元格中得到了一个不匹配的错误 If(SourceWb.Sheets(1).Cells(r,c)”)则 有人对此有办法吗。 下面是完整的相关脚本 For r = startR To endR For c = startC To endC If (SourceWb.Shee
If(SourceWb.Sheets(1).Cells(r,c)”)则
有人对此有办法吗。
下面是完整的相关脚本
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
r=startR至endR的
对于c=startC至endC
如果(SourceWb.Sheets(1).Cells(r,c)”,则
如果IsNumeric(SourceWb.Sheets(1).Cells(r,c))=True,则
如果plusMinus=“+”则
临时工作表(1).单元格(r,c).值2=临时工作表(1).单元格(r,c).值2+源工作表(1).单元格(r,c).值2*trueUp
其他的
TempWb.Sheets(1).单元格(r,c).Value2=TempWb.Sheets(1).单元格(r,c).Value2-SourceWb.Sheets(1).单元格(r,c).Value2*trueUp
如果结束
如果结束
如果结束
下一个c
下一个r
不匹配错误意味着VBA无法执行其试图实现的操作,因为类型或值不兼容。在这种情况下,单元格的值会给您一个错误2029(#NAME?)。错误是具有特定状态的特定值。因此,当您试图获取TempWb.Sheets(1).Cells(r,c).Value2“
时,VBA希望左侧有类似字符串的内容。但是现在它得到了一个错误,所以它无法进行比较
因此,根本的问题是,txt文件不能像CSV一样被同化为Excel电子表格。您需要打开文件并逐行读取其内容,将该内容放入变量中,然后使用该变量执行某些操作。一个简单的例子会给你提供大量的例子,并告诉你如何去做。很抱歉让你这么挂了,但是,你至少应该自己尝试一下。什么是
SourceWB
?当您收到此错误时,单元格(r,c)
中的值是多少?sourceWB是我从中提取的文件。当我得到一个错误时,单元格中的值是:dd->你不也应该检查TempWb.Sheets(1).Cells(r,c).Value2
也是数字的吗?我不这么认为,因为TempWb只是从一个类似的文件(相同的格式只是不同的数字)复制和粘贴的@CharlesPL它的错误2029