Заполните диапазон формулами - PullRequest
1 голос
/ 25 апреля 2019

Я хотел бы поставить некоторую формулу, которая должна быть такой:

sheet3.a1.value = "=sheet2!a1=Sheet1!a1"

Я пытаюсь добиться этого через VBA с использованием статического значения

. Пожалуйста, найдите код ниже

Sub test()
    Dim RowValue, ColumnValue As String

    RowValue = InputBox("Enter Row Number")
    ColumnValue = InputBox("Enter Column Number")

    RangeValue = RowValue + ColumnValue

    Sheet3.Range("A1:" & RangeValue).Value = "=Data1!" & "Range" & "=Data2!" & "Range"
End Sub

Ответы [ 4 ]

1 голос
/ 25 апреля 2019

Не использовать InputBox. Используйте Application.InputBox . Это позволит вам указать Type:=

Это то, что вы пытаетесь ( Не проверено )?

Sub test()
    Dim RowValue As Long, ColumnValue As String
    Dim rng As Range

    '<~~ Type:=1 ==> Numeric Value
    RowValue = Application.InputBox(Prompt:="Enter Row Number", Type:=1) 

    '<~~ Type:=2 ==> TextValue
    ColumnValue = Application.InputBox(Prompt:="Enter Column Number", Type:=2) 

    '~~> Check if the user entered valid values
    On Error Resume Next
    Set rng = Range(ColumnValue & RowValue)
    On Error GoTo 0

    If rng Is Nothing Then
        MsgBox "Wrong parameters specified"
        Exit Sub
    End If

    Sheet3.Range("A1:" & rng.Address).Formula = "=Data1!" & _
                                                rng.Address & _
                                                "=Data2!" & rng.Address

End Sub
0 голосов
/ 25 апреля 2019

Следующий код запросит номер строки и столбца и введет жестко запрограммированную строку в нужную ячейку:

Sub test()
    Dim RowValue, ColumnValue As Long
    Dim RangeValue As String

    RowValue = InputBox("Enter Row Number")
    ColumnValue = InputBox("Enter Column Number")

    Worksheets("Sheet3").Cells(RowValue, ColumnValue).Value = "=Data1!" & "Range" & "=Data2!" & "Range"
End Sub
0 голосов
/ 25 апреля 2019

Вы можете попробовать:

Option Explicit

Sub test()

    Dim RowValue As Long, ColumnValue As Long, RangeValue As Long

    RowValue = InputBox("Enter Row Number")

    ColumnValue = InputBox("Enter Column Number")

    Sheet3.Range(Cells(1, 1), Cells(RowValue, ColumnValue)).Formula = "=Data1!A1=Data2!A1"

End Sub
0 голосов
/ 25 апреля 2019

Если вы заполняете диапазон формулами, относительные (не абсолютные) формулы будут корректировать формулу относительно ее исходного положения.

Sub test()

    Dim RowValue as LONG, ColumnValue As String, RangeValue As String

    RowValue = InputBox("Enter Row Number")
    ColumnValue = InputBox("Enter Column LETTER")
    RangeValue = ColumnValue & RowValue 

    Sheet3.Range("A1:" & RangeValue).FORMULA = "=Data1!A1=Data2!A1"

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