运行Excel宏时报错误1004 方法 Range作用于对象 Worksheet时失败? 5

Setpxl_copy=wb_report.Worksheets("公式")''''复制pxl数据Setpxl_range=pxl_copy.Range("B3:B40"... Set pxl_copy = wb_report.Worksheets("公式") ''''复制pxl数据
Set pxl_range = pxl_copy.Range("B3:B40")
pxl_copy.Activate
For Each pxl_cell In pxl_range
If pxl_cell.Text = LotData Then
pxl = pxl_cell.Row
End If
Next
Application.CutCopyMode = False
With pxl_copy
.Range("C" & pxl).Activate(系统默认这句标黄了)
.Range("C" & pxl & ":AR" & pxl).Select
End With
Selection.Copy
With yield_copy
.Activate
.Range("AX" & day_row).Select
End With
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
展开
 我来答
一年孤独58aa
2013-06-25 · TA获得超过1404个赞
知道小有建树答主
回答量:592
采纳率:92%
帮助的人:443万
展开全部

问题在于对Range对象使用Activate方法时发生错误。

请注意:range的Activate方法激活单个单元格,该单元格必须处于当前选定区域内。要选择单元格区域,请使用 Select 方法。

很显然你的range并未处于选定区域就使用了activate方法。

其实你这个代码有很多“废话”,复制和选择性粘贴时,选中或激活单元格区域都是没必要的。事实上select这个方法在录制宏时才会在自动代码里出现,一般编写代码时基本不用。 我修改如下,请仔细体会。

Set pxl_copy = wb_report.Worksheets("公式")                   ''''复制pxl数据
Set pxl_range = pxl_copy.Range("B3:B40")
pxl_copy.Activate '可省略,如果省略对该工作表单元格的引用必须指明工作表。
For Each pxl_cell In pxl_range
    If pxl_cell.Text = LotData Then
        pxl = pxl_cell.Row
    End If
Next
pxl_copy.Range("C" & pxl & ":AR" & pxl).copy
yield_copy.Range("AX" & day_row).PasteSpecial _
    Paste:=xlPasteValuesAndNumberFormats,Operation:=xlNone
Application.CutCopyMode = False

 

此外,如果pxl_range里如果有多个单元格文本为LotData,那么是否要把后面的操作放在循环里。这点要考虑下。

unsamesky
2013-06-25 · TA获得超过2736个赞
知道小有建树答主
回答量:859
采纳率:100%
帮助的人:437万
展开全部

直接改成 .Activate ,不要前面的Range(...)

你的代码太过于繁琐,简单一点写的话,三到四句代码就可以写完了,你可以用下面的代码进行测试:

Dim Rng As Range
    Set Rng = Sheets("公式").Range("B3:B40").Find("Lotdata", , , xlWhole)
    
    If Not Rng Is Nothing Then
        Rng.Resize(1, 42).Copy yield_copy.Range("Ax" & 1).Resize(1, 42)
    End If
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式