如何修复在VBA-Excel中基于选定变量复制和粘贴可见单元格的问题
我有一个宏,它只复制与我们在reportsheet中选择的客户相关的信息(通过数据验证选项-基于客户名称),然后将链接到此客户的所有信息(不带标题)从数据表粘贴到copysheet 数据表包含全年的数据,但我们只对最近几天感兴趣,因此我对日期列和A1单元格后第一个活动单元格的位置进行过滤(例如A1556)。工作正常-它从我们选择的客户复制数据并创建报告。唯一的问题是:我只想从可见单元格复制数据,但当我排除(过滤)与所选客户链接的另一个变量(例如排除其中一个地址)时,该变量位于第一个可见单元格之后(本例中为A1558)宏仍将从我们定位单元格的第一个活动单元格(本例中为1556单元格)复制链接到所选客户的所有数据 我尝试使用Paste Special Paste:=xlCellTypeVisible仅选择可见单元格,但它会在活动单元格后复制与我们选择的客户相关的所有数据。甚至通过过滤器选项排除数据如何修复在VBA-Excel中基于选定变量复制和粘贴可见单元格的问题,excel,vba,Excel,Vba,我有一个宏,它只复制与我们在reportsheet中选择的客户相关的信息(通过数据验证选项-基于客户名称),然后将链接到此客户的所有信息(不带标题)从数据表粘贴到copysheet 数据表包含全年的数据,但我们只对最近几天感兴趣,因此我对日期列和A1单元格后第一个活动单元格的位置进行过滤(例如A1556)。工作正常-它从我们选择的客户复制数据并创建报告。唯一的问题是:我只想从可见单元格复制数据,但当我排除(过滤)与所选客户链接的另一个变量(例如排除其中一个地址)时,该变量位于第一个可见单元格之后
Set erange = Sheet3.Range("A2:B60") ' email range for a given customer
Set datasheet = Sheet1
Set reportsheet = Sheet2
Set copysheet = Sheet5
customer = reportsheet.Range("A1").Value 'picks up the name of the client
edress = Application.WorksheetFunction.VLookup(customer, erange, 2, False)
reportsheet.Range("B1").Value = edress
copysheet.Range("A2:N1000").Clear ' clears data from sheet5
reportsheet.Range("A2:N1000").ClearContents 'clears data from sheet2
datasheet.Select 'sheet1
finalrow = Cells(Rows.Count, 1).End(xlUp).Row
For i = ActiveCell.Row To finalrow
If Cells(i, 5) = customer Then
Range(Cells(i, 1), Cells(i, 14)).Copy
copysheet.Select 'selcts sheet5 to copy the data
Range("A200").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlCellTypeVisible
Range("A200").End(xlUp).Offset(0, 0).PasteSpecial Paste:=xlFormats
datasheet.Select
End If
Next i
copysheet.Select
Set outlookapp = CreateObject("Outlook.Application")
Set outlookmailitem = outlookapp.createitem(0)
Set myAttachments = outlookmailitem.Attachments
我希望宏仅从可见单元格(包含标题)复制所选客户的可见单元格。不包括排除的单元格-即使它们来自同一客户。
xlCellTypeVisible
是SpecialCells
方法的一部分,在复制阶段使用,而不是在PasteSpecial
中使用。下面是一个类似问题的答案。此外,应避免使用选择。无需,只需定义范围Sheet1.范围(“A1”)
等。xlCellTypeVisible
是SpecialCells
方法的一部分,在复制阶段使用,而不是在PasteSpecial
中使用。下面是一个类似问题的答案。此外,应避免使用选择。没有必要,只需定义范围Sheet1.范围(“A1”)
等。