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/2/csharp/278.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_Merge_Copy - Fatal编程技术网

将合并的单元格复制到VBA

将合并的单元格复制到VBA,vba,excel,merge,copy,Vba,Excel,Merge,Copy,我试图将整行复制到新工作表上,但仅复制儿童年龄在20岁以上的行 我还没有编写If语句来选择这些行,但是已经编写了代码来导入数据并填充各个列,以便从出生日期开始计算20岁生日 我的问题是导入的工作表上的列中的单元格被合并。这是合并的,因为一个人可能有多个子项,因此在本例中,将合并与父项相关的单元格。它不允许我复制合并的单元格 现在我只是想知道如何复制整个工作表,以便在执行If语句之前知道如何复制合并的单元格 这就是我到目前为止所做的(底部的粗体位是我尝试复制合并单元格的位置。我在ActiveShe

我试图将整行复制到新工作表上,但仅复制儿童年龄在20岁以上的行

我还没有编写If语句来选择这些行,但是已经编写了代码来导入数据并填充各个列,以便从出生日期开始计算20岁生日

我的问题是导入的工作表上的列中的单元格被合并。这是合并的,因为一个人可能有多个子项,因此在本例中,将合并与父项相关的单元格。它不允许我复制合并的单元格

现在我只是想知道如何复制整个工作表,以便在执行If语句之前知道如何复制合并的单元格

这就是我到目前为止所做的(底部的粗体位是我尝试复制合并单元格的位置。我在ActiveSheet.Range(“**”).MergeArea.copy的行中遇到错误

Option Explicit

Sub ImportActiveList()
Dim FileName As String
Dim WS1 As Worksheet
Dim WS2 As Worksheet
Dim ActiveListWB As Workbook

    Set WS2 = ActiveWorkbook.Sheets("Sheet1")
    FileName = Application.GetOpenFilename(FileFilter:="Excel Files (*.xls*),*.xls*", _
                                               Title:="Select Active List to Import", _
                                               MultiSelect:=False)

    If FileName = "False" Then
            Exit Sub
        Else
            Set ActiveListWB = Workbooks.Open(FileName)
    End If

    Set WS1 = ActiveListWB.Sheets("Page1-1")

    WS1.UsedRange.Copy WS2.Range("A1")

    ActiveWorkbook.Close False

End Sub


Sub CalculateBirthday()

    Dim lastrow As Long
    lastrow = Range("X" & Rows.Count).End(xlUp).Row

    ActiveSheet.Range("A5:AA291").AutoFilter
    ActiveSheet.Range("$A$5:$AA$291").AutoFilter Field:=24, Criteria1:="Child"

    Range("AB5") = "Today's Age Year/Month"
    Range("AB7:AB" & lastrow).Formula = "=DATEDIF(RC[-2],TODAY(),""Y"") & "" Years, "" & DATEDIF(RC[-2],TODAY(),""YM"") & "" Months """
    Columns("AB:AB").EntireColumn.AutoFit

    Range("AC5") = "Today's Age Year Only"
    Range("AC7:AC" & lastrow).Formula = "=DATEDIF(RC[-3],TODAY(),""Y"")"
    Columns("AC:AC").EntireColumn.AutoFit

    Range("AD5") = "Child 20th Birthday"
    Range("AD7:AD" & lastrow).Formula = "=DATE(YEAR(R[-1]C[-4])+20, MONTH(R[-1]C[-4]),DAY(R[-1]C[-4]))"
    Columns("AD:AD").EntireColumn.AutoFit


    ActiveSheet.Range("A5:AA291").MergeArea.Copy    'copies the merged cells 
    Sheet2.Range("A1").PasteValues       ' pastes what was copied into A1 on Sheet 2 and any merged cells**

End Sub


抱歉,粗体部分不起作用。这是我要找的最后两行。基本上,我只想将合并单元格复制到新工作表上。合并单元格=要处理的噩梦,every.single.time。是否有任何方法可以调整工作簿,使其不包含合并单元格?一般来说,使用合并单元格总是不好的做法。感谢您的帮助回答。这不是我的工作表,所以很遗憾,我无法确定它们是否已经合并。我确实取消了合并,在筛选“Child”之前和之后都尝试了此操作,但不幸的是,这删除了一些信息。是的,我只是再次尝试。取消合并只会删除已合并的信息:(对不起,粗体部分不起作用。这是我要找的最后两行。基本上我只想将合并单元格复制到新的工作表上。合并单元格=要处理的噩梦,every.single.time。有什么方法可以调整工作簿,使其不包含合并单元格吗?一般来说,使用合并单元格总是不好的做法。感谢e回复。这不是我的工作表,所以不幸的是,我无法确定它们是否已经合并。我确实取消了合并,在筛选“Child”之前和之后都尝试了此操作,但不幸的是,这删除了一些信息。是的,我只是再次尝试。取消合并只会删除已合并的信息:(我得到了一个以Selection开头的行的语法错误:(实际上是粘贴:=导致了这个问题。现在试试@dogmum…我修复了代码格式。请使用
sheet2.Range(“A1”).Paste特殊xlPasteValues
。无需
。选择
。感谢您的帮助。我收到错误“Select method of Range class failed”。如果我删除他。从sheet2.Range位选择,则我会收到“Invalid use of property”错误:(try:Sheets(“Sheet1”)。激活我收到一个以Selection开头的行的语法错误:(实际上是粘贴:=引起了问题。请立即尝试@dogmum…我修复了代码格式。请使用
sheet2.Range(“A1”).Paste特殊xlPasteValues
。无需
。选择
。感谢您的帮助。我收到错误“Select method of Range class failed”。如果我删除他。从sheet2.Range位选择,则我会收到“Invalid use of property”错误:(尝试:工作表(“工作表1”)。激活
Range("A5").Copy
sheet2.Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False