首页 > 解决方案 > 希望下面的代码等同于带有格式的 Vlookup。有什么建议么。Excel VBA

问题描述

下面是当我需要在 excel 中进行 vlookup 类型操作时,我想出的用于获取所有源格式的代码。我也通过这种方式得到任何公式。如果有一种方法可以消除公式并仅获得值和格式,那么它将有很大帮助。

Option Explicit

Sub finding()

    Dim wb As Workbook
    Set wb = ThisWorkbook

    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("Sheet1")

    Dim ws1 As Worksheet
    Set ws1 = ThisWorkbook.Worksheets("Sheet2")

    Dim i As Integer
    Dim FoundRange As Range
    Dim sFoundRange As String

    Dim range_to_copy As Range
    Dim range_to_paste As Range

    Dim ToFindString As String

    For i = 2 To 9

        ToFindString = ws.Cells(i, 1)

        On Error Resume Next:
        sFoundRange = ws1.Range("E1:E12").Find(ToFindString).Address

        Debug.Print sFoundRange

        Set range_to_copy = ws1.Range(Replace(sFoundRange, "E", "F"))
        Set range_to_paste = ws.Range("B" & i)

        range_to_copy.Copy
        range_to_paste.PasteSpecial xlPasteAllUsingSourceTheme

        Application.CutCopyMode = False

    Next i

End Sub

标签: excelvba

解决方案


为了检查单元格是否包含公式,您可以使用工作表函数=FormulaText()。我用Formula范围的属性做了一个测试,但这不起作用。(也许你可以检查第一个字符是否是一个=符号)


推荐阅读