Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.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/28.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
Vba 复制合并单元格并粘贴到新工作表中_Vba_Excel - Fatal编程技术网

Vba 复制合并单元格并粘贴到新工作表中

Vba 复制合并单元格并粘贴到新工作表中,vba,excel,Vba,Excel,我有一个将合并单元格粘贴到另一个工作表中新合并单元格的代码,但它返回错误 主要问题是,如果我将范围设置为字符串类型,例如sRange as String,则没有问题,但如果我将其设置为range,则它没有输出,并且返回错误消息 我的代码: Sub cmd_Click() Dim lastrow As Long, erow As Long, sRange As Range, sCrange As String, cell As Variant Set sRange = She

我有一个将合并单元格粘贴到另一个工作表中新合并单元格的代码,但它返回错误

主要问题是,如果我将范围设置为字符串类型,例如
sRange as String
,则没有问题,但如果我将其设置为
range
,则它没有输出,并且返回错误消息

我的代码

Sub cmd_Click()

    Dim lastrow As Long, erow As Long, sRange As Range, sCrange As String, cell As Variant


    Set sRange = Sheet2.Range("J10:J500")
    sCrange = "J5:J600"

    For Each cell In sRange
        If Not IsEmpty(cell) Then
            Sheet2.Range(sRange).Copy Sheet4.Range(sCrange)
        End If
    Next      

End Sub
有人能帮我修一下吗,提前谢谢

变化

Sheet2.Range(sRange).Copy Sheet4.Range(sCrange)

请尝试查看代码更改是否正常

: 图纸2.范围(sRange)。复印图纸4.范围(sCrange)

改为: 单元格。复印表4。范围(sCrange)。单元格(i)
i=i+1

考虑更改声明变量的方式,请尝试:

Option Explicit

Sub cmd_Click()

    Dim lastrow As Long, erow As Long
    Dim sRange As Range
    Dim sCrange As Range
    Dim cell As Range

    Set sRange = Sheet2.Range("J10:J500")
    Set sCrange = Sheet4.Range("J5:J600")

    For Each cell In sRange
        If Not IsEmpty(cell) Then
            sCrange.Value = sRange
        End If
    Next

End Sub

如果您要在合并单元格中共享数据的屏幕截图,请准确说明您想要实现的目标(需要从合并单元格复制什么),我们将能够提供更可靠、更合适的解决方案。先生,您想让我将excel发送给您吗?:)让你看看我的问题是什么?:)不,请将相关数据上传到您的帖子,先生,请参阅此文档以查看我的项目。好的,先生。我会这样做:)
Dim lastrow As Long,erow As Long,sRange As Range,sCrange As String,cell As Variant Set sRange=Sheet2.Range(“J10:J500”)sCrange=“J5:J600”对于sRange中的每个单元格,如果不是空的(cell),那么sRange.Copy Sheet4.Range(sCrange)End如果下一个也不起作用,先生,调试消息是,对象是必需的。sRange.Copy Sheet4.Range(sCrange)。cells(i)Sir@Lee Li Fong,但“i”是什么?我的意思是我没有变量“i”。另外,如果我这样做
sRange.Copy sheet 4.Range(sCrange).cells(cell)
整个列即使是空的也会被复制。它不会在另一张表上返回任何值,先生,但我尝试了,
sRange.Copy sCrange
,它可以工作,但空单元格也包括在内。
Option Explicit

Sub cmd_Click()

    Dim lastrow As Long, erow As Long
    Dim sRange As Range
    Dim sCrange As Range
    Dim cell As Range

    Set sRange = Sheet2.Range("J10:J500")
    Set sCrange = Sheet4.Range("J5:J600")

    For Each cell In sRange
        If Not IsEmpty(cell) Then
            sCrange.Value = sRange
        End If
    Next

End Sub