Excel 2010 VBA在其他工作表中引用特定单元格

Der*_*rek 3 excel vba

对不起,这可能是一个非常基本的Excel VBA问题.我刚刚开始学习它,而且我没有找到很好的教程.实际上,我根本找不到关于语言的有组织的信息.

我有一些名为"Sheet1"和"Sheet2"的工作表.
Sheet1的第一列和第二列包含一些数字.

我想编写一个宏来打印函数的结果,该函数将2个变量(从A列和B列各一个)传递给Sheet2.但我想在新工作表中将这些结果分开,以便Sheet1中Column'i'上的函数结果放入第1行和第4列*i.这是我到目前为止尝试做的,但它没有奏效,因为我不知道如何正确引用其他工作表中的特定单元格.

抱歉这是一个非常新的问题,非常感谢任何帮助!

Sub results()

    Dim i As Integer, noValues As Integer
    noValues = Application.CountA(Range("A:A"))

    Sheets("Sheet2").Select
    Range("A1").Select
    For i = 1 To noValues
        Range("A1").Offset(0, 4 * (i - 1)).Select
        ActiveCell.FormulaR1C1 = "=Sheet1!A[i] + Sheet1!B[i]"
    Next i

End Sub
Run Code Online (Sandbox Code Playgroud)

其中A [i]和B [i]应表示A列或B列中的值,即行i.

Dic*_*ika 5

Sub Results2()

    Dim rCell As Range
    Dim shSource As Worksheet
    Dim shDest As Worksheet
    Dim lCnt As Long

    Set shSource = ThisWorkbook.Sheets("Sheet1")
    Set shDest = ThisWorkbook.Sheets("Sheet2")

    For Each rCell In shSource.Range("A1", shSource.Cells(shSource.Rows.Count, 1).End(xlUp)).Cells
        lCnt = lCnt + 1
        shDest.Range("A4").Offset(0, lCnt * 4).Formula = "=" & rCell.Address(False, False, , True) & "+" & rCell.Offset(0, 1).Address(False, False, , True)
    Next rCell

End Sub
Run Code Online (Sandbox Code Playgroud)

这将循环通过sheet1的A列,并在sheet2中为每个单元格创建一个公式.为了找到Sheet1中的最后一个单元格,我从底部(shSource.Rows.Count)和.End(xlUp)开始,以获取列中非空白的最后一个单元格.

要创建公式的元素,我使用Sheet上单元格的Address属性.我正在使用三个参数来解决.前两个是RowAbsolute和ColumnAbsolute,都设置为false.我不关心第三个参数,但我将第四个参数(外部)设置为True,以便它包含工作表名称.

我更喜欢从源到目的地而不是其他方式.但这只是个人偏好.如果你想从目的地工作,

Sub Results3()

    Dim i As Long, lCnt As Long
    Dim sh As Worksheet

    lCnt = Application.WorksheetFunction.CountA(ThisWorkbook.Sheets("Sheet1").Columns(1))
    Set sh = ThisWorkbook.Sheets("Sheet2")

    Const sSOURCE As String = "Sheet1!"

    For i = 1 To lCnt
        sh.Range("A1").Offset(0, 4 * (i - 1)).Formula = "=" & sSOURCE & "A" & i & " + " & sSOURCE & "B" & i
    Next i

End Sub
Run Code Online (Sandbox Code Playgroud)