【问题标题】:VBA to copy cell location to found cell in another worksheetVBA将单元格位置复制到另一个工作表中找到的单元格
【发布时间】:2019-11-12 13:31:20
【问题描述】:

我有一个子例程,我想获取工作表名称并搜索所有工作表中的每一列 B,一旦找到匹配项,我希望它直接链接到第一个工作簿中的“总计”单元格.这个“总计”单元格将始终是“J”列中的最后一个单元格,但行会发生变化。

工作表名称由导入 CSV 的较早子项确定

应该放置“total”引用的单元格与搜索结果有偏移,它需要是一个链接,因此如果值发生变化,单元格将更新以匹配新的总数。

到目前为止,我能够使用工作表名称“找到”单元格,但是输入到偏移单元格中的值是第一个工作表的标题,而不是“总计”的链接值

Sub Item_Return()

Dim scanstring As String
Dim foundscan As Range

scanstring = ActiveSheet.Name

Dim lcaddr As Range
Set lcaddr = Range("J" & Range("J1", Range("J" & Rows.Count).End(xlUp)).SpecialCells(xlConstants, xlTextValues).Rows.Count)

    For Each Sh In ThisWorkbook.Sheets
        With Sh.Columns("B")
            Set foundscan = .Find(What:=scanstring, LookIn:=xlValues, Lookat:=xlWhole, _
                SearchOrder:=xlByRows, SearchDirection:=xlNext, _
                MatchCase:=False, SearchFormat:=False)
        End With
        If Not foundscan Is Nothing Then
            foundscan.Offset(0, 1).Value = lcaddr.Address(External:=True)
            Sh.Activate
            foundscan.Activate
            ActiveWindow.ScrollRow = foundscan.Row
            Exit Sub
        End If
    Next

MsgBox scanstring & " was not found"

End Sub

返回的值不是“J”行中上次使用的单元格的链接单元格,而是“J”行第一个单元格中的值

感谢您的任何帮助

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    我只需要更改范围以选择单元格,因此 Set lcaddr = Range("J" & Range("J1", Range("J" & Rows.Count).End(xlUp)).SpecialCells(xlConstants, xlTextValues).Rows.Count) 变为 Set lcaddr = Range("J1").End(xlDown)

    【讨论】:

    • 如果在最后一个单元格之前的列中有任何空白单元格,使用xlDown 会导致您的宏选择真正最后一个单元格之前的单元格。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-10
    相关资源
    最近更新 更多