hvt268
Thành viên chính thức


- Tham gia
- 27/7/14
- Bài viết
- 74
- Được thích
- 8
Đầu tiên xin gửi lời xin lỗi vì mình không nghĩ ra cách đặt câu hỏi như thế nào cả. Vấn đề của mình như sau, bữa trước các bạn trên diễn đàn giúp mình viết một đoạn mã như sau:
Sub PhanMon()
Dim SoTiet, Sang, chieu As Variant, i, j, k As Long
Union([D6
35], [h6:h35]).ClearContents
SoTiet = [L5:R35].Value
Sang = [C6
35].Value
chieu = [G6:H35].Value
For i = 2 To UBound(SoTiet)
If Not IsEmpty(SoTiet(i, 1)) Then
For j = 1 To UBound(Sang)
If SoTiet(i, 1) = Sang(j, 1) Then
For k = 2 To UBound(SoTiet, 2)
If SoTiet(i, k) > 0 Then
Sang(j, 2) = SoTiet(1, k)
SoTiet(i, k) = SoTiet(i, k) - 1
Exit For
End If
Next k
End If
Next j
'==========
For j = 1 To UBound(chieu)
If SoTiet(i, 1) = chieu(j, 1) Then
For k = 2 To UBound(SoTiet, 2)
If SoTiet(i, k) > 0 Then
chieu(j, 2) = SoTiet(1, k)
SoTiet(i, k) = SoTiet(i, k) - 1
Exit For
End If
Next k
End If
Next j
End If
Next i
[C6
35].Value = Sang
[G6:H35].Value = chieu
End Sub
Bây giờ mình muốn cái dòng màu đỏ: SoTiet = [L5:R35].Value phần [L5:R35] thành [L5:R35]&[Y5:AD35]
Vậy mình phải viết như thế nào bằng ngôn ngữ vba để máy có thể hiểu được ý của mình
Sub PhanMon()
Dim SoTiet, Sang, chieu As Variant, i, j, k As Long
Union([D6

SoTiet = [L5:R35].Value
Sang = [C6

chieu = [G6:H35].Value
For i = 2 To UBound(SoTiet)
If Not IsEmpty(SoTiet(i, 1)) Then
For j = 1 To UBound(Sang)
If SoTiet(i, 1) = Sang(j, 1) Then
For k = 2 To UBound(SoTiet, 2)
If SoTiet(i, k) > 0 Then
Sang(j, 2) = SoTiet(1, k)
SoTiet(i, k) = SoTiet(i, k) - 1
Exit For
End If
Next k
End If
Next j
'==========
For j = 1 To UBound(chieu)
If SoTiet(i, 1) = chieu(j, 1) Then
For k = 2 To UBound(SoTiet, 2)
If SoTiet(i, k) > 0 Then
chieu(j, 2) = SoTiet(1, k)
SoTiet(i, k) = SoTiet(i, k) - 1
Exit For
End If
Next k
End If
Next j
End If
Next i
[C6

[G6:H35].Value = chieu
End Sub
Bây giờ mình muốn cái dòng màu đỏ: SoTiet = [L5:R35].Value phần [L5:R35] thành [L5:R35]&[Y5:AD35]
Vậy mình phải viết như thế nào bằng ngôn ngữ vba để máy có thể hiểu được ý của mình