查找特定单元格,更改相邻单元格的值,值取决于位置(Excel for Mac,15.6)

时间:2015-12-23 04:18:21

标签: excel vba excel-vba

这是我在这里发表的第一篇文章,我知道我的表达很差。

我正在尝试在日期列中找到包含特定短语的单元格。这个短语标志着一个部分的开头。然后,我想说明从每个部分的第一个日期到该部分中的其他日期所经过的天数。返回的值应显示在相邻列中。以下是列的示例。

Dates and Elapsed number of days in adjacent column

我在第二栏中使用这个公式:

=A15-$A$15

然后将其拖到相关部分的单元格中。 我正在尝试自动完成此过程。

我在这个网站上找到了这个代码并稍微改了一下以获得这个:

For Each cCell In Range("A1,A900")
cCell.Select

If ActiveCell.Value = "Phrase" Then
  ActiveCell.Offset(1, 1).Value = "-"
End If
Next cCell

所以我的斗争就是在第二价值领域说些什么。我不知何故需要让每个部分减去每个部分的第一个日期(“短语”下的日期)。

另一个挑战是复制已更改的第一个相邻单元格,然后将特殊粘贴到下面的单元格中,但在下一个“短语”出现后停止。

我会以任何方式详细说明。感谢。

1 个答案:

答案 0 :(得分:0)

我认为可以公平地说,你的问题并没有在解决这个问题方面付出太多努力,而且代码片段只是在“短语”单元格旁边添加了一个短划线。但是,对于更广泛的受众,这个问题很有意思,因为它突出了自动执行Excel键击任务和编写代码来处理数据之间的区别,然后将这些数据写入Excel工作表。两者都使用VBA,但前者只是按键的程序化记录,后者是算法解决方案。

您问题中的说法是:我在第二列中使用此公式...然后将其向下拖动到相关部分中的单元格。我正在尝试自动执行此过程。可以通过使用VBA重现一堆工作表函数来实现这一点,但它很繁琐并且可能变得复杂。我会留下其他人回答这个问题,因为他们需要花更多的时间在答案上而不是你的问题(我的一个不做规则!)。

另一方面,如果您不再尝试自动按键和向VBA进行数据处理,那么问题就变得非常简单了。这是一个非常好的例子,说明VBA如何能够解决Excel函数可能会使页面执行的问题,并且可能无法可靠地解决问题。

所以这里的代码是VBA解决方案。它需要添加一些数据检查行来处理空白单元格,非日期等,但我会将该任务交还给您:

The following packages will be UPDATED:

<list-of-package-names>

Proceed ([y]/n)?