augenstern30 2021-09-06 16:37 采纳率: 100%
浏览 24
已结题

vb 筛选后数组赋值报错

Sub MRP()

Dim rng, Rng1 As Range
Dim str As String
Static totalrow2 As Integer
Dim a, i, j, k, totalrow1, totalcol As Integer
Sheets(2).Cells.Select
Selection.AutoFilter

MsgBox ("here")
totalrow1 = Sheets(1).[B65536].End(xlUp).Row
totalrow2 = Sheets(2).[B65536].End(xlUp).Row
totalcol = Sheets(2).Range("IV1").End(xlToLeft).Column

num2name = Replace(Cells(1, totalcol).Address(0, 0), "1", "")

arr = Sheets(2).Range("a2:mun2name" & totalcol).SpecialCells(xlCellTypeVisible).Value

不知道为什么最后一行运行不了,如果改成具体数(比如“a2:bi81")就可以运行。同时msgbox打印mun2name和totalcol的值分别为bi,81.

run-time error'1004': application-defined or object-defined error

  • 写回答

1条回答 默认 最新

  • XingyuZhao-MSFT 2021-09-06 17:07
    关注

    我看到你直接将 mun2name 作为字符串传入,如果传入的是具体的值呢?
    像这样:

    Sheets(2).Range("a2:" & mun2name & totalcol).SpecialCells(xlCellTypeVisible).Value
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月17日
  • 已采纳回答 9月9日
  • 创建了问题 9月6日