永发信息网

Excel 数据取数模板 VBA Runtime Error '5'

答案:1  悬赏:50  手机版
解决时间 2021-02-01 04:10
  • 提问者网友:城市野鹿
  • 2021-01-31 11:01
为处理经销商提供的月报数据,我想实现数据自动抓取功能,其中涉及到一些判断语句在测试的时候出现bug,本人接触VBA也只有几天的时间也不清楚是什么原因,请教各位高手大大帮忙解惑,不胜感激!

代码如下,其中错误语句为: If Sheets(1).Cells("4, Column") = "年初数" Or Sheets(1).Cells("4, Column") = "年初余额" Then

Sub TtC_1()

Range("B4:B200").TextToColumns Destination:=Range("AA4:AA200"), _
DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=True, Tab:=True, Space:=True, Other:=True, OtherChar:=" ", _
FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True

If Application.CountA(Range("AB4:AB200")) < 10 Then

Range("AA4:AA200").Copy Destination:=Range("B4")

Else

Range("AB4:AB200").Copy Destination:=Range("B4")

End If

Range("AA4:AB200").ClearContents

Range("C4:F200").Copy
Range("AC4:AF200").PasteSpecial xlPasteValues

For Column = AC To AF

If Sheets(1).Cells("4, Column") = "年初数" Or Sheets(1).Cells("4, Column") = "年初余额" Then
Range("Column5:Column200").Copy Destination:=Range("E4")

ElseIf Sheets(1).Cells("4, Column") = "期初数" Or Sheets(1).Cells("4, Column") = "期初余额" Then
Range("Column5:Column200").Copy Destination:=Range("E4")
Cells(3, 5).Interior.Color = vbRed
Cells(3, 5).AddComment "经销商标示为期初数,请核实"

ElseIf Sheets(1).Cells("4, Column") = "期末数" Or Sheets(1).Cells("4, Column") = "期末余额" Then
Range("Column5:Column200").Copy Destination:=Range("F4")

End If

Next Column

Range("AC4:AF200").ClearContents
Range("C4:D200").ClearContents

End Sub
最佳答案
  • 五星知识达人网友:千杯敬自由
  • 2021-01-31 12:00
首先我得称赞一下你,接触VBA只有几天就能写出如此大段的代码,领悟能力令人佩服。
进入正题:
For Column = AC To AF
这个语句有问题:1、Column没有定义,2、AC、AF你想表示列号,但是此写法错误
可以换成29 to 32
Cells("4, Column")这个表达式也不对,应该是Cells(4, Column)
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯