Ng_Duy_Long
Thành viên mới
- Tham gia
- 7/2/07
- Bài viết
- 47
- Được thích
- 24
Các bạn cho mình hỏi: làm sao để đánh công thức trong VBA dạng: Range("E18").FormulaR1C1 = "=SUM(R[-x]C:R[-y]C)" (với x = 9, y = 1 chẳng hạn)
R là row, C là columnCác bạn cho mình hỏi: làm sao để đánh công thức trong VBA dạng: Range("E18").FormulaR1C1 = "=SUM(R[-x]C:R[-y]C)" (với x = 9, y = 1 chẳng hạn)
Nếu gõ công thức trong cell của sheet thì bạn gõ như thế nào!? Có thể chẳng cần phức tạp như vậy, đại khái là:Ý tôi là làm thế nào khi x hoặc y thay đổi thì Range("E18").FormulaR1C1 = "=SUM(R[-x]C:R[-y]C)" cũng thay đổi theo.
Dim iStart as Long, iEnd as Long
iStart=1: iEnd=9
Range("E18").value="=SUM(A" & iStart & ":A" & iEnd & ")"
Sub CongNo(KhHg As String)
Dim Rng As Range, sRng As Range, tRng As Range
Dim Sh As Worksheet, Sh0 As Worksheet
Dim MyAdd As String: Dim Rws As Long
Set Sh0 = Sheets("CSDL")
Set Rng = Sh0.Range(Sh0.[E1], Sh0.[e65500].End(xlUp))
Set Sh = Sheets("Form") '*'
Rws = Sh.[AC2].Interior.ColorIndex '*'
Sh.[AB2].Resize(, 10).Interior.ColorIndex = IIf(Rws < 42, Rws + 1, 34) '*'
Set sRng = Rng.Find(KhHg, , xlFormulas, xlWhole)
If Not sRng Is Nothing Then
MyAdd = sRng.Address
Do
Sh.[Ae65500].End(xlUp).Offset(1, -2).Resize(, 9).Value = _
sRng.Offset(, -2).Resize(, 9).Value '*''*'
Set sRng = Rng.FindNext(sRng)
Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
End If
Set tRng = Sh.[Ae65500].End(xlUp) '*'
tRng.Offset(1).FormulaR1C1 = "=TCong"
tRng.Offset(1).Resize(, 6).Font.Bold = True
If tRng.Offset(-1).Value <> tRng.Offset(1).Value Then
Rws = tRng.Row - tRng.Offset(-1, -1).End(xlUp).Row + 1
tRng.Offset(1, 1).FormulaR1C1 = "=SUM(R[-" & Rws & "]C:R[-1]C)"
tRng.Offset(1, 1).AutoFill Destination:=tRng.Offset(1, 1).Resize(, 3)
tRng.Offset(1, 5).FormulaR1C1 = "=SUM(R[-" & Rws & "]C:R[-1]C)"
Else
tRng.Offset(1, 1).FormulaR1C1 = "=SUM(R[-1]C)"
tRng.Offset(1, 5).FormulaR1C1 = "=SUM(R[-1]C)"
End If
tRng.CurrentRegion.Offset(, 3).NumberFormat = "#,##0"
Sh.Select
End Sub