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