tranphuson
Thành viên thường trực
- Tham gia
- 14/8/09
- Bài viết
- 269
- Được thích
- 10
- Giới tính
- Nam
bạn thử:Vui lòng giúp mình chuyển Công thức (Cộng, trừ, nhân, chia) file đính kèm thành VBA
Xin cảm ơn
Sub Test1()
Dim i, j As Integer
For i = 2 To 5
vData = Sheets(1).Cells(1, i)
For j = 3 To 17
vData1 = Sheets(1).Cells(j, 1)
If i = 2 Then Sheets(1).Cells(j, i).Value = vData1 * vData
If i = 3 Then Sheets(1).Cells(j, i).Value = vData1 + vData
If i = 4 Then Sheets(1).Cells(j, i).Value = vData1 / vData
If i = 5 Then Sheets(1).Cells(j, i).Value = vData1 - vData
Next j
Next i
End Sub
Cảm ơn bạn đã giúp. Nhưng cho mình hỏi thêm là nếu tăng dòng ở Cột A thì dòng lặp (For j = 3 To 17) tăng tự động dựa vào dòng Cột A, không cần phải cố định là dòng A17bạn thử:
Mã:Sub Test1() Dim i, j As Integer For i = 2 To 5 vData = Sheets(1).Cells(1, i) For j = 3 To 17 vData1 = Sheets(1).Cells(j, 1) If i = 2 Then Sheets(1).Cells(j, i).Value = vData1 * vData If i = 3 Then Sheets(1).Cells(j, i).Value = vData1 + vData If i = 4 Then Sheets(1).Cells(j, i).Value = vData1 / vData If i = 5 Then Sheets(1).Cells(j, i).Value = vData1 - vData Next j Next i End Sub
bạn sửa lại:Cảm ơn bạn đã giúp. Nhưng cho mình hỏi thêm là nếu tăng dòng ở Cột A thì dòng lặp (For j = 3 To 17) tăng tự động dựa vào dòng Cột A, không cần phải cố định là dòng A17
Sub Test1()
Dim i, j As Integer
lRow = Sheets(1).Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To 5
vData = Sheets(1).Cells(1, i)
For j = 3 To lRow
vData1 = Sheets(1).Cells(j, 1)
If i = 2 Then Sheets(1).Cells(j, i).Value = vData1 * vData
If i = 3 Then Sheets(1).Cells(j, i).Value = vData1 + vData
If i = 4 Then Sheets(1).Cells(j, i).Value = vData1 / vData
If i = 5 Then Sheets(1).Cells(j, i).Value = vData1 - vData
Next j
Next i
End Sub
bạn sửa lại:
Mã:Sub Test1() Dim i, j As Integer lRow = Sheets(1).Range("A" & Rows.Count).End(xlUp).Row For i = 2 To 5 vData = Sheets(1).Cells(1, i) For j = 3 To lRow vData1 = Sheets(1).Cells(j, 1) If i = 2 Then Sheets(1).Cells(j, i).Value = vData1 * vData If i = 3 Then Sheets(1).Cells(j, i).Value = vData1 + vData If i = 4 Then Sheets(1).Cells(j, i).Value = vData1 / vData If i = 5 Then Sheets(1).Cells(j, i).Value = vData1 - vData Next j Next i End Sub
Dim lRow, vData, vData1
Lỗi do chưa khai báo biến lRowBáo lỗi như bên dưới. Cảm ơn
View attachment 202431
Vâng anh, em cũng đã lưu ý rồi, Không chỉ biến lRow, nếu là option explicit thì phải khai báo cả vData và vData1 nữaLỗi do chưa khai báo biến lRow
Cảm ơn đã giúp đỡ. Mình đã làm đượcXin lỗi, mình dùng sub trong module, nếu bạn dùng Option Explicit thì bạn thêm khai báo cho biến lRow, vData, vData1 là được.Mã:Dim lRow, vData, vData1
Xin lỗi, mình dùng sub trong module, nếu bạn dùng Option Explicit thì bạn thêm khai báo cho biến lRow, vData, vData1 là được.Mã:Dim lRow, vData, vData1
...Cột A3, B3