Надеюсь, что приведенный ниже код эквивалентен Vlookup с форматированием. какие-либо предложения. Excel VBA - PullRequest
0 голосов
/ 04 октября 2019

Ниже приведен код, который я придумал, чтобы получить все исходное форматирование всякий раз, когда мне требуется операция типа vlookup в excel. Я также получаю любые формулы таким способом. Если есть способ упростить формулу и получить только значение и форматирование, то это очень поможет.

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

1 Ответ

0 голосов
/ 04 октября 2019

Чтобы проверить, содержит ли ячейка формулу, вы можете использовать функцию листа =FormulaText(). Я сделал тест со свойством Formula диапазона, но это не сработало. (Возможно, вы можете проверить, является ли первый символ знаком =)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...