根据excel中的单元格内容寻找cellindex

我现在有一点困难,我已经search了几个星期,现在没有任何运气。 我希望你们中的一些人可能会有答案。

我想通过一个具有特定数值的单元格进行search。 该行包含周编号。 当发现我希望能够像对象一样处理单元格,或者至less我需要知道单元格的坐标以进一步处理。

而且,这个过程是否可以逆转? 意思是,如果我有先前单元格的坐标,我可以从同一行中的下一个单元格获取值吗?

示例将是:search行本周的星期编号。 希望得到包含正确数字的单元格的坐标。 在这里输入图像说明

当我有这个专栏时,我想每个同事周一到周五都能find这个单元格的内容

我不关心,如果我做了VBA或公式。

非常感谢。 最好的问候Teambit

没有必要为这个VBA …你应该能够很容易地实现它与公式。

因此,单元格L3的公式为: =ADDRESS(3,MATCH($B$1,$A$3:$N$3,0)) 。 这将在input单元格$B$1的一周内执行MATCH ,并在周$A$3:$N$3的范围内find它。 ADDRESS函数将返回单元格的地址,在我的例子中$G$3

然后下面的网格/表格将显示本周的工作周。 OFFSETfunction将单元格地址向下移动3行,然后在每周的每一天向右移动1,2,3,4或6行。 OFFSET将返回一个空白的0,所以T函数确保我们得到一个等价的文本,或者空白而不是0.我使用INDIRECT来传递OFFSET函数的起始单元格地址,所以它使用我们的值( $G$3 ),而不是该单元格( $L$1 )。

我没有放入任何东西来使这个dynamic的每个工作者,所以它总是使用第3行,但你可以从一个VLOOKUP的名字使用ADDRESS获取单元格引用,然后将其插入到其他公式。

Excel ADDRESS,MATCH,OFFSET公式

检查是否这有助于你..

 Sub SubOne() Dim sh As Worksheet Dim rw As Range Dim iFoundIt As Range Dim RowCount As Integer ' var to iterate trough rows RowCount = 0 Set sh = ActiveSheet For Each rw In sh.Rows ' iterate over all cells in first row If sh.Cells(rw.Row, 1).Value = "ThisIsMySpecialValue" Then ' value is found, we save the cell for future options Set iFoundIt = sh.Cells(rw.Row, 1) Exit For End If RowCount = RowCount + 1 Next rw Debug.Print (iFoundIt.Row) Debug.Print (iFoundIt.Column) End Sub 

我知道如果我理解你的问题,但是如果你有单元格的坐标,并且你例如在左边的下一个单元格,你可以使用像这样的东西

 Sub findWeek() Dim targetSheet As Worksheet Set targetSheet = Sheets("Sheet1") Dim l As Long Dim row As Long row = 2 Dim myVal As String myVal = "some name of week you looking for" Dim resultCell As Range With targetSheet Do While .Cells(row, l).Value <> myVal l = l + 1 Loop resultCell = .Cells(row, l) End With End Sub 

所以我更新了答案,尝试这样的事情。 只要更改工作表名称,也许行,甚至你正在寻找的名称。 而在resultCell中,你将会得到你正在寻找的单元格的对象。 如果你看单元格/范围api,你可以得到它的坐标等…

所以你可以使它成为一个函数,它将返回范围,或任何你想要的…但总是在价值resultCell将是你正在寻找的单元格。 也许你会需要小心,如果周没有find;),因为这将陷入循环,但它并不难