Cái này ăn chắc phải dùng VBA!Nhờ các bậc tiền bối giúp đỡ em cách dùng hàm để cộng các dữ liệu trong ô có đánh dấu màu đỏ, kết quả để ở cell mầu vàng có file kèm theo.
Xin chân thành cảm ơn!
Trần Khải
Theo mình làm thêm cột phụ.Ý em ở đây là có rất nhiều dữ liệu trong các cell và tính phức tạp của nó rất nhiều, các cell đó không được thay đổi kết cấu, làm thế nào để cộng dữ liệu trong các cell có chứ mầu đỏ. chứ không thể dùng như bác tusydo được như thế em dùng tay còn hơn. vì dữ liệu của em nhiều không thể dùng tay được nên mới nhờ các bác giúp đỡ cho em đỡ khổ
Khi thiết kế file này có lẽ rất mất thời gian. Nhưng tổng hợp số liệu với file này chắc cũng mất thời gian không kém. Bạn nên thiết kế lại Form đi. Cho cả sau này nữa chứ không chỉ lần này.Nhờ các bậc tiền bối giúp đỡ em cách dùng hàm để cộng các dữ liệu trong ô có đánh dấu màu đỏ, kết quả để ở cell mầu vàng có file kèm theo.
Xin chân thành cảm ơn!
Trần Khải
Option Explicit
Sub SumFromText()
Dim eRw As Long: Dim VTr As Byte, VTr2 As Byte
Dim RngC As Range, RngD As Range, Rng As Range, Clls As Range
Dim KhLg As Double, Temp As Double: Dim sNum As String
Const Bg As String = "=": Const Ph As String = ","
eRw = [B65500].End(xlUp).Row + 1
Cells(eRw, "A").Value = "GPE"
Set RngC = [B1]
Do
Set RngD = RngC.Offset(1, -1).End(xlDown).Offset(-1, 1)
If RngD.Row > 65500 Then Exit Do
Set Rng = Range(RngC.Offset(1), RngD)
For Each Clls In Rng
VTr = InStr(Clls.Value, Bg)
If VTr > 0 Then
sNum = Mid(Clls.Value, VTr + 1)
If sNum <> "0" Then
VTr2 = InStr(sNum, Ph)
If VTr2 > 0 Then
KhLg = KhLg + CDbl(Left(sNum, VTr2 - 1)) + _
CDbl(Mid(sNum, VTr2 + 1)) / 10 ^ (Len(Mid(sNum, VTr2 + 1)))
Else
KhLg = KhLg + CDbl(sNum)
End If
End If
End If
Next Clls
RngC.Offset(1, 2).Value = KhLg
KhLg = 0: Set RngC = RngD
Loop
Cells(eRw, "A").Value = ""
End Sub
Function SumCF(Vung As Range, Mau As Long) As Double
Dim i As Long, Clls As Range, Temp As String
On Error Resume Next
For Each Clls In Vung
Temp = ""
For i = 1 To Len(Clls)
If Clls.Characters(i, 1).Font.ColorIndex = Mau Then
Temp = Temp & Mid(Clls, i, 1)
End If
Next i
SumCF = SumCF + CDbl(Replace(Temp, ",", Application.International(3)))
Next Clls
End Function
Nhờ các bậc tiền bối giúp đỡ em cách dùng hàm để cộng các dữ liệu trong ô có đánh dấu màu đỏ, kết quả để ở cell mầu vàng có file kèm theo.
Xin chân thành cảm ơn!
Trần Khải