【问题标题】:How to find a cell with any value and then find the next value that is different in VBA如何找到具有任何值的单元格,然后在 VBA 中找到下一个不同的值
【发布时间】:2016-02-01 12:03:10
【问题描述】:

我有一个包含各种不同列的数据列表。

我想要实现的是让 excel 查看其中一列并找到出现的第一个值,复制该单元格,然后将其粘贴到另一个单元格中。数据从第三行开始(第 1 行和第 2 行是标题)。假设我想将第一个值粘贴到 G3 中。

然后,我需要 excel 在同一列中找到与第一个不同的下一个值并执行与之前相同的操作:复制该值,并将其粘贴到 G 列的下一行中。

我已经尝试对此进行编码,但我没有得到任何结果,并且如果未定义单元格中的值(如 .Find 函数),我还没有找到一种方法来查找一个单元格,然后是下一个单元格需要一个值来搜索)。我知道如何编写复制/粘贴功能,但我不知道如何让它首先找到单元格。

任何帮助将不胜感激。非常感谢。

【问题讨论】:

  • 发布您当前的代码。
  • Sub createnextlink() Dim list As Range 'find first value list = Sheets("Sheet1").Range("B:B") list.find(What:=list.value, Lookin:=list) ActiveCell.copy Sheets("Sheet1").Range("E1000").End(xlUp).PasteSpecial 'find next value '????? End Sub

标签: excel vba search find copy-paste


【解决方案1】:

在此示例中,我们在 A 列中查找值:

Sub FillG()
   Dim i As Long
   i = Rows.Count

   Range("A3:A" & i).Copy Range("G3:G" & i)
   ActiveSheet.Range("G3:G" & i).RemoveDuplicates Columns:=1, Header:=xlNo
   If Range("G3").Value = "" Then Range("G3").Delete Shift:=xlUp
End Sub

方法是将所有列A复制到G,然后删除重复项,如果存在则删除G3中的空。 :

【讨论】:

  • 嗨@garys-student。我曾尝试将其放入 vba,但遗憾的是它不起作用。我可以看到这里要做什么,但是在 G 列中,我在每一行中都得到 x,x,x,y,z,y,z。有什么建议吗?
  • @maxthackray 您使用的是什么版本的 Excel?
  • @garys-student Mac 上的 Excel 2016
  • @maxthackray 我不知道RemoveDuplicates 在那个版本上是否可用......
  • @garys-student 它似乎可用,但似乎不起作用。它所做的是将 A 列中的值粘贴到 G 列但向上一行。我有一种感觉,这是因为代码只指定如果单元格 G3 为空则删除它,但这可能是完全错误的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-15
  • 1970-01-01
相关资源
最近更新 更多