用公式填充范围

问题描述 投票:1回答:4

我想提出一些必须像这样的公式

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
excel vba
4个回答
1
投票

不要使用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
投票

如果使用公式填充范围,则相对(非绝对)公式将相对于其原点位置调整公式。

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

0
投票

你可以尝试:

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
投票

以下代码将查询行号和列号,并在所需单元格中输入硬编码字符串:

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
© www.soinside.com 2019 - 2024. All rights reserved.