Excel中的VBA编码

时间:2017-03-08 20:15:26

标签: excel vba excel-vba

我对VBA编码很新。我在excel中有两张

表1 - 列包括CTC,TCC(A1,B1)           行包含ctc和tcc详细信息(A2,B2)

表2 - 行包括CTC和TCC。 TCC计算的是此页面中的内容。           B1的CTC取自第一行的第1行。然后进行计算以计算B3中的TCC。

要求: 为了计算TCC,我们需要将第1张CTC粘贴到第2张CTC色谱柱中。得到的结果TCC应出现在TCC色谱柱下的第1页。

这是我尝试过的代码:

Sub Button1_Click()

    Dim value1 As Integer
    Dim value2 As Integer

    For i = 1 To 6

        value1 = ThisWorkbook.Sheets(1).Range("Ai").Value

        Sheet2.Range("B1") = value1

        Sheet1.Cells(B, i) = ThisWorkbook.Sheets(2).Range("B3").Value

    Next i
End Sub

2 个答案:

答案 0 :(得分:0)

我觉得这段代码就是你想要的。 如果与您的预期不同,请告诉我。

Sub Button1_Click()
    Dim value1 As Integer
    Dim value2 As Integer
    For i = 1 To 6
        value1 = ThisWorkbook.Sheets(1).Range("A" & i).Value ' we can't make Range("Ai").Value
        Sheet2.Range("B1").Value = value1
        Sheet1.Cells(i, Range("B1").Column).Value = Sheet2.Range("B3").Value 'Cells(row, columns), that is the correct format for cells
    Next i
End Sub

答案 1 :(得分:0)

听起来你想要以下代码:

Sub Button1_Click()
    Dim i As Long
    For i = 1 To 6
        ThisWorkbook.WorkSheets("Sheet 2").Range("B1").Value = ThisWorkbook.WorkSheets("Sheet 1").Cells(i, "A").Value
        ThisWorkbook.WorkSheets("Sheet 1").Cells(i, "B").Value = ThisWorkbook.WorkSheets("Sheet 2").Range("B3").Value
    Next i
End Sub

我使用过表格"表1和#34;和"表2",因为这就是你的问题。如果您的工作表实际被称为" Sheet1"和" Sheet2"。

如果不知道您的工作表使用哪个CodeName以及它们在工作簿中出现的顺序,很难知道您有多接近。但是您使用Range("Ai")肯定是错误的 - 它必须是Range("A" & i)Cells(i, "A")(或Cells(i, 1))。

更新以处理工作表A列中的所有值"表1":

Sub Button1_Click()
    Dim i As Long
    With ThisWorkbook.WorkSheets("Sheet 1")
        For i = 1 To .Cells(.Rows.Count, "A").End(xlUp).Row
            'Check so that we only process non-empty cells
            '(just in case there is an empty cell part-way through the data)
            If Not IsEmpty(.Cells(i, "A").Value) Then
                ThisWorkbook.WorkSheets("Sheet 2").Range("B1").Value = .Cells(i, "A").Value
                .Cells(i, "B").Value = ThisWorkbook.WorkSheets("Sheet 2").Range("B3").Value
            End If
        Next i
    End With
End Sub