Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel-VBA对象不支持此属性或方法-粘贴-Excel_Vba_Excel - Fatal编程技术网

Excel-VBA对象不支持此属性或方法-粘贴-Excel

Excel-VBA对象不支持此属性或方法-粘贴-Excel,vba,excel,Vba,Excel,给我带来麻烦的那一行是“”(CStr(WS_M.Cells(n,START_C)))。Cells(n,START_C)。粘贴“” 这应该在第3列中找到选项卡名称,然后转到该选项卡并将选项卡名称粘贴到该选项卡中 Const START_C = 3 Const MAX_TRAN = 1000 Const START_R = 2 Const MASTER = "MASTER" Sub MOVEDATACORRECTLY() Dim WS_M As W

给我带来麻烦的那一行是“”(CStr(WS_M.Cells(n,START_C)))。Cells(n,START_C)。粘贴“”

这应该在第3列中找到选项卡名称,然后转到该选项卡并将选项卡名称粘贴到该选项卡中

    Const START_C = 3
    Const MAX_TRAN = 1000
    Const START_R = 2
    Const MASTER = "MASTER"

    Sub MOVEDATACORRECTLY()

    Dim WS_M As Worksheet
    Dim thisWB As Workbook
    Set thisWB = ActiveWorkbook
    Set WS_M = Worksheets(MASTER)

    For M = START_R To (START_R + MAX_TRAN)
        If WS_M.Cells(M, (START_C + 1)) = "" Then Exit For

    Next M

    M = M - 1

    For n = START_R To M
       WS_M.Cells(n, START_C).Copy
       Sheets(CStr(WS_M.Cells(n, START_C))).Cells(n, START_C).Paste      

    Next n

    End Sub
请尝试以下方法:

For n = START_R To M
       WS_M.Cells(n, START_C).Copy
       Sheets(CStr(WS_M.Cells(n, START_C))).Cells(n, START_C).Select
       ActiveSheet.Paste
Next n

如果查看Excel
范围
对象的列表,
粘贴
不在成员列表中。然而,有一种特殊的。我还没有尝试过,但这可能也有用。

对于在Excel中复制一系列单元格,使用
Copy
方法使
VBA
程序更容易崩溃/或给出可预测的结果

假设在过程中,您从
系统剪贴板复制数据,而用户试图
将其他数据存储到系统剪贴板

不总是这样,但从用户的角度来看,这种错误可能会发生

所以我总是喜欢使用更好的方法,比如动态交换范围。下面是一个小演示:

Public Sub Sample_Copy_without_Clipboard()
    Dim dRange As Range, iRange As Range
    Set iRange = Range("A1:B3")
    Set dRange = Range("D1:E3")
    dRange.Value = iRange.Value
End Sub

注意:此方法仅适用于未格式化的文本数据。如果不是,则使用的建议或答案。
WS_M.Cells(n,START_C)。复制工作表(CStr(WS_M.Cells(n,START_C)))。Cells(n,START_C)
无需单独粘贴…粘贴特殊与右键单击单元格时选择粘贴特殊相同-您只能选择粘贴值或格式等。粘贴将粘贴所有内容