excel - 如何根据 VBA 中的选定变量修复复制和粘贴可见单元格 - Excel
问题描述
我有一个宏,它只复制与我们在报告表中选择的客户相关的信息(通过数据验证选项 - 基于客户名称),然后将链接到该客户的所有信息(不包括标题)从数据表粘贴到复制表。
数据表包含全年的数据,但我们只对最近几天感兴趣,所以我过滤了日期列和 A1 单元格之后的第一个活动单元格的位置(例如 A1556)。效果很好 - 它从我们选择的客户那里复制数据并创建报告。唯一的问题:我只想从 VISIBLE CELLS 复制数据,但是当我排除(过滤)另一个变量(例如,排除一个地址)链接到所选客户并且位于第一个可见单元格之后(即 A1558 在此case) 宏仍然会从我们放置单元格的第一个活动单元格(在本例中为 A1556 单元格)复制链接到所选客户的所有数据。
我尝试使用 PasteSpecial Paste:=xlCellTypeVisible 仅选择可见单元格,但它会复制与我们在活动单元格之后选择的客户相关的所有数据。甚至通过过滤器选项排除的数据。
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
我希望宏仅从可见单元格中复制所选客户的可见单元格(不包括标题)。不包括排除的单元格 - 即使它们来自同一客户。
解决方案
推荐阅读
- excel - 从excel中的行中删除重复项
- php - 如何用它的照片显示一个画廊
- excel - 第二高和第一高值
- memory - 100 字节的内存分配失败
- python - 如何在每一行上做 value_counts 并制作一些其值是每个值的计数的列
- python - eBPF:读取 getaddrinfo 的结果
- python - 如何解决错误,“模块 umap 没有属性 UMAP”.. 我尝试安装和重新安装 umap 但对我不起作用
- python - plotly-dash 显示空白网页
- javascript - 使用 sigmajs 绘制大图
- python - mysql.connector.errors.InterfaceError: 2003: Can't connect to MySQL server on '127.0.0.1:3306' on Scrapinghub