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