Excel 尝试将数据移动到各种工作表时出现类型不匹配错误
我试图根据a列中的值将数据从名为Raw_data的工作表移动到其他各种工作表。在目标工作表中查找最后一行时,我发现类型不匹配。Excel 尝试将数据移动到各种工作表时出现类型不匹配错误,excel,vba,Excel,Vba,我试图根据a列中的值将数据从名为Raw_data的工作表移动到其他各种工作表。在目标工作表中查找最后一行时,我发现类型不匹配。.worksheets().cells().end().row是否不返回数字?我注意到抛出“类型不匹配”错误的那一行。代码如下: Sub MoveDataToWorksheet() Dim i As Variant Dim pname As String Dim rng As Range Dim lastrow As Long Dim wslastrow As Long
.worksheets().cells().end().row
是否不返回数字?我注意到抛出“类型不匹配”错误的那一行。代码如下:
Sub MoveDataToWorksheet()
Dim i As Variant
Dim pname As String
Dim rng As Range
Dim lastrow As Long
Dim wslastrow As Long
Dim ws As Worksheet
Dim count As Long
Dim rawdata As Worksheet
Set rawdata = ThisWorkbook.Worksheets("Raw_Data")
lastrow = rawdata.Cells(Rows.count, "a").End(xlUp).Row
Set rng = rawdata.Range("a5:a" & lastrow)
For Each ws In ThisWorkbook.Worksheets
If ws.Name = "Raw_Data" Or ws.Name = "Charts" Or _
ws.Name = "Tables" Then
'skips the sheets I want to keep
Else
wslastrow = ws.Cells(Rows.count, "a").End(xlUp).Row
If wslastrow >= 5 Then
ws.Range("a5:r" & wslastrow).Delete
Else
ws.Range("a5:r" & 6).Delete
End If
End If
Next ws
For Each i In rng
pname = Cells(i.Row, "a").Value
For Each ws In ThisWorkbook.Worksheets
If pname = ws.Name Then
wslastrow = ws.Cells(Rows.count, "a").End(xlUp).Row
i.EntireRow.Copy
ws.Cells(wslastrow, "a").PasteSpecial
End If
Next ws
If pname = "South Carolina" Then
i.EntireRow.Copy
wslastrow = ThisWorkbook.Worksheets(SC).Cells(Rows.count, "a").End(xlUp).Row + 1
ThisWorkbook.Worksheets(SC).Cells(wslastrow, "a").PasteSpecial
End If
If pname = "Saudi Arabia" Then
i.EntireRow.Copy
wslastrow = ThisWorkbook.Worksheets(KSA).Cells(Rows.count, "a").End(xlUp).Row + 1 'Error on this line but I imagine it will also be on the other wslastrow lines too.
ThisWorkbook.Worksheets(KSA).Cells(wslastrow, "a").PasteSpecial
End If
If pname = "United Arab Emerites" Then
i.EntireRow.Copy
wslastrow = ThisWorkbook.Worksheets(UAE).Cells(Rows.count, "a").End(xlUp).Row + 1
ThisWorkbook.Worksheets(UAE).Cells(wslastrow, "a").PasteSpecial
End If
Next i
'code to fix formulas
End Sub
您需要替换这些:
- SC
- KSA
- 阿联酋
- “SC”
- “KSA”
- “阿联酋”
如果您确实有这些名称的工作表…您需要替换这些:
- SC
- KSA
- 阿联酋
- “SC”
- “KSA”
- “阿联酋”
如果你真的有这些名字的工作表…什么是
KSA
?,代表沙特阿拉伯王国。我只调用这三个,因为它们在原始数据中有空格。我用的还有很多其他的变量,第一个循环应该处理这些。是的,但现在它是一个未声明的变量。将选项Explicit
添加到模块顶部。如果工作表的实际名称为KSA
,那么名称会用引号括起来:“KSA”
。肯定是KSA,您可能只需要在代码中的工作表名称周围加上”
,假设您的工作表名为“KSA”等等。现在我觉得自己很笨。当然,他们需要报价。谢谢你们两位!!!什么是KSA
?,代表沙特阿拉伯王国。我只调用这三个,因为它们在原始数据中有空格。我用的还有很多其他的变量,第一个循环应该处理这些。是的,但现在它是一个未声明的变量。将选项Explicit
添加到模块顶部。如果工作表的实际名称为KSA
,那么名称会用引号括起来:“KSA”
。肯定是KSA,您可能只需要在代码中的工作表名称周围加上”
,假设您的工作表名为“KSA”等等。现在我觉得自己很笨。当然,他们需要报价。谢谢你们两位!!!