Excel中的VBA编码

我对VBA编码非常陌生。 我有两张 excel

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

工作表2 – 行包括CTC和TCC。 TCC计算在这个页面中。 B1从表1的第一行取得CTC。然后计算B3以计算TCC。

要求:为了计算TCC,我们需要在表1中将第一个CTC粘贴到第二个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 

我觉得这个代码是你想要的。 让我知道,如果它不同于你的预期。

 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 

这听起来像你想要的以下代码:

 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 

我已经使用了“Sheet 1”和“Sheet 2”的表名,因为这是你的问题。 如果您的工作表实际上被称为“工作表1”和“工作表2”,则应该更改这些工作表。


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


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

 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