相关文章推荐
傲视众生的枇杷  ·  了解Visual Basic ...·  1 月前    · 
读研的葫芦  ·  听力残疾的分级标准是什么?·  4 月前    · 
腼腆的桔子  ·  三国杀:羊徽瑜- 萌娘百科万物皆可萌的百科全书·  5 月前    · 
强悍的创口贴  ·  长春中医药大学2024年招收台湾免试生招生简 ...·  1 年前    · 
绅士的水煮肉  ·  全省首家景区外币代兑点在武当山启用_特色服务 ...·  1 年前    · 
大气的日记本  ·  感受冰雪运动魅力中国数字冰雪运动会《极限巅峰 ...·  2 年前    · 
小百科  ›  Excel VBA行复制和粘贴错误开发者社区
vba
光明磊落的南瓜
2 年前
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
提问
问 Excel VBA行复制和粘贴错误
Stack Overflow用户
提问于 2017-11-20 15:50:21
EN

下面的代码是根据第一个工作表E列中满足的关键字条件从sheet1复制和粘贴行到sheet2的。

在代码行5至10之间,我试图将整个第十行复制到sheet2,以便用作此工作表的列标题,其中将创建一个枢轴。

每当我试图运行复制和粘贴这一行的任何操作时,我都会得到“Appliced-定义或对象定义的错误”。

有人能帮忙吗?

Sub mileStoneDateChanger()
    Dim r As Long, pasteRowIndex As Long, v() As Long, i As Long
    Dim lastRow As Long
    Dim lCol As Long
    Sheets("Sheet1").Select
    Rows("10:10").Select
    Selection.Copy
    Sheets("Sheet2").Select
    Range("A1").Select
    Selection.Paste
    lastRow = Cells.Find(What:="*",
                    After:=Range("A1"),
                    LookAt:=xlPart,
                    LookIn:=xlFormulas,
                    SearchOrder:=xlByRows,
                    SearchDirection:=xlPrevious,
                    MatchCase:=False).Row
    MsgBox "Last Row: " & lastRow
    pasteRowIndex = 1
    With Sheets("Sheet1")
        For r = 1 To lastRow
            If .Cells(r, "E").Value Like "Milestone*" Then
                If UBound(Split(.Cells(r, "E"), ",")) > 0 Then
                    i = i + 1
                    ReDim v(1 To i)
                    v(i) = pasteRowIndex
                End If
                Sheets("Sheet1").Rows(r).Copy Sheets("Sheet2").Rows(pasteRowIndex)
            pasteRowIndex = pasteRowIndex + 1
            End If
        Next r
    End With
    With Sheets("Sheet2")
        newLastRow = pasteRowIndex
        If IsArray(v) Then
            .Columns(6).Insert shift:=xlToRight
         For i = 1 To newLastRow
                If InStr(1, .Cells(i, "E"), ",") Then
                    .Cells(i, "F").Value = Split(.Cells(i, "E"), ",")(1)
                End If
            Next i
        End If
    End With
End Sub
3 214 0 票数 1
EN
vba
excel

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-11-20 15:58:32

下面是Sheet1中第10行到Sheet2中的A1的副本

Sheets("Sheet1").Rows("10").Copy Sheets("Sheet2").Range("A1")
票数 4
EN

Stack Overflow用户

发布于 2017-11-20 15:55:52

将 Selection.Paste 替换为 Selection.PasteSpecial

票数 1
EN

Stack Overflow用户

发布于 2017-11-20 15:56:00

不能用一整行粘贴 Range("A1") 。因此,请使用以下方法:

Sub TestME()
    Sheets(1).Select
    Rows("10:10").Select
    Selection.Copy
    Sheets(2).Select
    Range("A1").Select
 
推荐文章
傲视众生的枇杷  ·  了解Visual Basic 语法(VBA) | Microsoft Learn
1 月前
读研的葫芦  ·  听力残疾的分级标准是什么?
4 月前
腼腆的桔子  ·  三国杀:羊徽瑜- 萌娘百科万物皆可萌的百科全书
5 月前
强悍的创口贴  ·  长春中医药大学2024年招收台湾免试生招生简章-长春中医药大学国际 ...
1 年前
绅士的水煮肉  ·  全省首家景区外币代兑点在武当山启用_特色服务_湖北省分局
1 年前
大气的日记本  ·  感受冰雪运动魅力中国数字冰雪运动会《极限巅峰》项目现已开赛 ...
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
小百科 - 百科知识指南
© 2024 ~ 沪ICP备11025650号