我很欣赏那里有很多类似的问题,但我一直在搜索各种论坛三天现在还没有找到任何我需要的东西 - 所以要么我在做非常奇怪的事情或我的搜索技能不达标!试图合并列在Excel中的列
我真的很感激,如果有人能让我知道我哪里出错了,或者甚至可以将我联系到一个可能有帮助的解决方案,因为我没有找到一个解决方案。
我目前有一个包含六个工作表的电子表格。工作表2-6包含来自不同来源的物品的数据。工作表1目前包含四列,它使用我拼凑成四个单独列的宏来填充项目数据。工作表2包含一个'itemlist'列,我想从工作表2中的四列中的每一列复制数据。
我希望这是有道理的。在此刻,我的代码是下面:
Sub UpdateList()
'Clear the current ranges
Range("PharmacyItems").Clear
Range("PrelabelItems").Clear
Range("RestockItems").Clear
Range("TakehomeItems").Clear
Range("FullItemList").Clear
'Populate control with unique list
Range("PharmacyFullList").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("PharmacyItems"), Unique:=True
Range("PrelabelFullList").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("PrelabelItems"), Unique:=True
Range("RestockFullList").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("RestockItems"), Unique:=True
Range("TakehomeFullList").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("TakehomeItems"), Unique:=True
'Combine the four ranges into one
Range("UniqueLists!$A:$A, UniqueLists!$B:$B, UniqueLists!$C:$C, UniqueLists!$D:$D").Copy Sheets("Drug totals").Range("A2")
'Sort the data
Range("FullItemList").Sort Key1:=Range("FullItemList").Columns(1), Order1:=xlAscending, Orientation:=xlSortColumns, Header:=xlYes, SortMethod:=xlPinYin, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption2:=xlSortNormal
End Sub
为了阐明以上,这里是一个定义其范围是:
PharmacyItems,PrelabelItems,RestockItems和TakehomeItems:这些是包含从每个数据工作表复制的唯一项目的单个列表。 FullList:上述四个的fulllist是源数据列出了哪些不是唯一列表 FullItemList:列进我希望所有从唯一列表中的数据,以最终
我之所以有其指定的范围内每列而不是使用命名范围是,我试图看看这是否会使它更好,因为它只是给我一个模糊和蓬松的范围问题的错误。使用该范围中定义的列,它会告诉我目标的大小/形状与源不匹配。
确切的错误是: 运行时错误'1004': 信息无法粘贴,因为复制区域和粘贴区域的大小和形状不一样。请尝试以下之一: - 单击一个单元格,然后粘贴 - 选择一个矩形,这是相同的大小和形状,然后粘贴
谁能帮助我?可悲的是我是一个SQL Server的女孩,我宁愿从数据库中提取数据,但我不允许这个数据库!
预先感谢您
夏季
澄清 - 您想通过将四个“唯一”列表复制到一个列中来合并? –
您是否需要四个唯一列表,或者您是否可以将值从xxxFullList直接复制到DrugTotals表单中? –
我需要四个唯一的列表,因为他们正在用于其他事情。您添加了未经测试的代码的帖子非常棒,谢谢! – Elatesummer