Bạn không mô tả chi tiết thì không ai hiểu nhéMong các cao thủ nghiên cứu giúp làm thế nào để có thể chuyển đổi dữ liệu tự động từ dạng cột khách sạn dạng hàng tự động như thế này.
Có vẻ như các bác ấy đang giảm về 0!Mong các bác giảm thời gian giúp em với nhé.
Bạn không mô tả chi tiết thì không ai hiểu nhé
Có vẻ như các bác à
Xin lỗi các bác mấy hôm rồi em bận quá ko vào diễn đàn được. Nay mới lại có thời gian vào mong các bác thông cảm và hướng dẫn giúp em với. Cảm ơn ahBạn không mô tả chi tiết thì không ai hiểu nhé
Có vẻ như các bác ấy đang giảm về 0!
Bạn không mô tả chi tiết thì không ai hiểu nhé
Có vẻ như các bác ấy đang giảm về 0! Bác giúp em với bác nhé
Option Explicit
Sub CT()
Dim lr&, i&, j&, k&, rng, res()
lr = Cells(Rows.Count, "H").End(xlUp).Row
rng = Range("A7:H" & lr).Value
ReDim res(1 To UBound(rng), 1 To 4)
Do
i = i + 1
If IsNumeric(rng(i, 1)) Then
j = 0: k = k + 1: res(k, 1) = i
Do
j = j + 1
If rng(i + j, 4) = Range("J6").Value Then res(k, 2) = i + j
If rng(i + j, 4) = Range("K6").Value Then res(k, 3) = i + j
If rng(i + j, 4) = Range("L6").Value Then res(k, 4) = i + j
Loop Until i + j >= UBound(rng) Or IsNumeric(rng(i + j, 1))
End If
Loop Until i >= UBound(rng)
Range("J7:L10000").ClearContents
For i = 1 To UBound(res)
If Not IsEmpty(res(i, 2)) Then Cells(res(i, 1) + 6, "J").Formula = "=H" & res(i, 2) + 6
If Not IsEmpty(res(i, 3)) Then Cells(res(i, 1) + 6, "K").Formula = "=H" & res(i, 3) + 6
If Not IsEmpty(res(i, 4)) Then Cells(res(i, 1) + 6, "L").Formula = "=H" & res(i, 4) + 6
Next
End Sub
Chạy thử đoạn mã này nhé
PHP:Clear option option CT phụ() Làm mờ lr&, i&, j&, k&, rng, res() lr = Cells(Rows.Count, "H").End(xlUp).Row rng = Pham vi("A7:H" & lr).Giá trị ReDim res(1 Đến UBound(rng), 1 Đến 4) làm tôi = tôi + 1 If IsNumeric(rng(i, 1)) Thì j = 0: k = k + 1: res(k, 1) = i làm j = j + 1 If rng(i + j, 4) = Pham vi("J6"). The value Thì res(k, 2) = i + j If rng(i + j, 4) = Pham vi("K6"). The value Thì res(k, 3) = i + j If rng(i + j, 4) = Pham vi("L6"). The value Thì res(k, 4) = i + j Vòng lặp Cho đến khi i + j >= UBound(rng) Or IsNumeric(rng(i + j, 1)) end if Vòng lặp cho đến khi i >= UBound(rng) Phạm vi("J7:L10000").ClearContents Đối với i = 1 Đến UBound(res) If Not IsEmpty(res(i, 2)) Then Cells(res(i, 1) + 6, "J").Formula = "=H" & res(i, 2) + 6 If Not IsEmpty(res(i, 3)) Then Cells(res(i, 1) + 6, "K").Formula = "=H" & res(i, 3) + 6 If Not IsEmpty(res(i, 4)) Then Cells(res(i, 1) + 6, "L").Formula = "=H" & res(i, 4) + 6 Kế tiếp kết thúc ph [/QUOTE]
Anh ơi sao em Alt+F11, copy mã vào, nhấn nút chạy mà nó không chạy cứ đòi nhập tên macro là sao anh nhỉ?Run try this code nhé
PHP:Tùy chọn rõ ràng CT phụ() Làm mờ lr&, i&, j&, k&, rng, res() lr = Cells(Rows.Count, "H").End(xlUp).Row rng = Phạm vi("A7:H" & lr).Giá trị ReDim res(1 Đến UBound(rng), 1 Đến 4) LÀM tôi = tôi + 1 Nếu IsNumeric(rng(i, 1)) Thì j = 0: k = k + 1: res(k, 1) = i LÀM j = j + 1 Nếu rng(i + j, 4) = Phạm vi("J6"). Giá trị Thì res(k, 2) = i + j Nếu rng(i + j, 4) = Phạm vi("K6"). Giá trị Thì res(k, 3) = i + j Nếu rng(i + j, 4) = Phạm vi("L6"). Giá trị Thì res(k, 4) = i + j Vòng lặp Cho đến khi i + j >= UBound(rng) Or IsNumeric(rng(i + j, 1)) kết thúc nếu Vòng lặp cho đến khi i >= UBound(rng) Phạm vi("J7:L10000").ClearContents Đối với i = 1 Đến UBound(res) If Not IsEmpty(res(i, 2)) Then Cells(res(i, 1) + 6, "J").Formula = "=H" & res(i, 2) + 6 If Not IsEmpty(res(i, 3)) Then Cells(res(i, 1) + 6, "K").Formula = "=H" & res(i, 3) + 6 If Not IsEmpty(res(i, 4)) Then Cells(res(i, 1) + 6, "L").Formula = "=H" & res(i, 4) + 6 Kế tiếp kết thúc phụ
Anh ơi em copy thiếu. Em chạy được rồi. Cảm ơn anh nhiều nhé. Làm thế nào để giỏi được như anh anh nhỉ?Anh ơi sao em Alt+F11 copy code vào nhấn nút chạy mà nó không chạy yêu cầu macro tên là sao anh nhỉ?
AnhAnh ơi sao em Alt+F11 copy code vào nhấn nút chạy mà nó không chạy yêu cầu macro tên là sao anh nhỉ?
Bài đã được tự động gộp:
Anh ơi em chép thiếu. Em đã chạy được rồi. Cảm ơn anh nhiều nhé. Làm thế nào để được giỏi như anh anh nhỉ?
Anh ơi các cột VL, NC, M là kết quả từ mã đó ah. Nó lấy kết quả dựa vào sự tiềm kiếm giá trị ở cột Thành tiền theo điều kiện tìm kiếm ở Z đấy ah.Các cột bên phải, bạn chưa xác định cột nào là kết quả từ mã.
Bạn xóa các cột không dùng được, điền các kết quả muốn có vào tay (1 vài dòng là OK)
em xin gửi lại file. Sau khi ẩn đi những cột ko cần thiếtAnh ơi các cột VL, NC, M là kết quả từ mã đó ah. Nó lấy kết quả dựa vào sự tìm kiếm giá trị tiềm ẩn ở cột Thành tiền theo điều kiện tìm kiếm ở Z đấy ah.
File này là nâng cao từ file Mấy hôm trước em nhờ anh giúp đấy anh.Anh ơi các cột VL, NC, M là kết quả từ mã đó ah. Nó lấy kết quả dựa vào sự tìm kiếm giá trị tiềm ẩn ở cột Thành tiền theo điều kiện tìm kiếm ở Z đấy ah.
Bài đã được tự động gộp:
em xin gửi lại file. Sau khi ẩn các cột không cần thiết
AnhAnh ơi các cột VL, NC, M là kết quả từ mã đó ah. Nó lấy kết quả dựa vào sự tiềm kiếm giá trị ở cột Thành tiền theo điều kiện tìm kiếm ở Z đấy ah.
Bài đã được tự động gộp:
em xin gửi lại file. Sau khi ẩn đi những cột ko cần thiết
Bài đã được tự động gộp:
File này là nâng cao từ file Mấy hôm trước em nhờ anh giúp đấy anh.
Các anh trong diễn đàn GPE có rảnh cùng chung tay giúp em với ah.Anh
bebo021999 bớt chút thời gian nghiên cứu giúp em với anh nhé. Em cảm ơn anh
Em viết nhầm là cột L ah. Nó là những cột thành tiền ấy ahKhông phải không ai muốn giúp mà có lẽ file nhìn quá khiếp hãi. Do đó, rất khó cho người xem.
Nội 3 cột này đã đá bôm bốp.
Muốn nhận được trợ giúp thì bản thân phải trau chuốt cho yêu cầu của mình. Nên có thêm hình ảnh minh họa cho sản phẩm, không phải ai cũng rảnh mà tải file xuống đâu.
Kiểm tra lại . .Ý của em là muốn đưa các cột thành tiền (Vật liệu, nhân công, máy thi công) được tổng cộng tại các cột K, M, O, Q sang hàng ngang tương ứng với cột VL, NC, M dựa vào điều kiện ở cột Z (Điều kiện này có được dựa vào cột C và Cột F). Mong các bác bớt chút thời gian xử lý giúp em với.
Bài đã được tự động gộp:
Em viết nhầm là cột L ah. Nó là những cột thành tiền ấy ah
Bài đã được tự động gộp:
Em xin up lại file ah.
Sub XYZ()
Dim arr(), a(), res(), sRow&, i&, r&, j&, c&, dj&, tmp$
With Sheets("5.DGCT")
arr = .Range("C8:Q" & .Cells(Rows.Count, "F").End(xlUp).Row).Value
End With
sRow = UBound(arr)
ReDim a(1 To sRow, 1 To 4)
res = Array(a, a, a, a)
On Error Resume Next
For i = 1 To sRow
dj = 0
tmp = Replace(arr(i, 4), " ", "")
If arr(i, 1) <> Empty Then
r = i
ElseIf InStr(1, tmp, "A-") = 1 Then
dj = 1
ElseIf arr(i, 5) Like "công" Then
dj = 2
ElseIf InStr(1, tmp, "C-") = 1 Then
dj = 3
End If
If dj > 0 Then
For j = 9 To 15 Step 2
c = (j - 9) / 2
res(c)(r, dj) = arr(i, j)
res(c)(r, 4) = res(c)(r, 4) + arr(i, j)
Next j
End If
Next i
For j = 0 To 3
c = j * 4 + 27
Sheets("5.DGCT").Cells(8, c).Resize(sRow, 3) = res(j)
'Sheets("5.DGCT").Cells(8, c).Resize(sRow, 4) = res(j) 'Tinh cot tong cong
Next j
End Sub
Chưa đến lúc cần phải "giỏi được như anh"....
Anh ơi em copy thiếu. Em chạy được rồi. Cảm ơn anh nhiều nhé. Làm thế nào để giỏi được như anh anh nhỉ?
....
Chỉnh lại . . .Em cảm ơn anh đã giúp đỡ. Về số liệu thì đúng với ý của em rồi anh ah nhưng em mong muốn ở đây là bên kết quả phải có dấu bằng đi kèm nữa cơ ah(Ví dụ AA12=M13). Anh hỗ trợ em tiếp với anh nhé.
Sub XYZABC()
Dim sh As Worksheet, rng As Range
Dim eRow&, i&, r&, j&, c&, dj&, tmp$
Application.ScreenUpdating = False
Application.Calculation = xlManual
Set sh = Sheets("5.DGCT")
eRow = sh.Cells(Rows.Count, "F").End(xlUp).Row
Set rng = sh.Range("A1:Q" & eRow)
For j = 27 To 39 Step 4
sh.Cells(8, j).Resize(eRow - 7, 4).ClearContents
Next j
On Error Resume Next
For i = 8 To eRow
dj = 0
tmp = Replace(rng(i, 6).Value, " ", "")
If rng(i, 3) <> Empty Then
r = i
For j = 30 To 42 Step 4
sh.Cells(r, j).Formula = "=" & Cells(r, j - 3).Address(RowAbsolute:=False, ColumnAbsolute:=False) & _
"+" & Cells(r, j - 2).Address(RowAbsolute:=False, ColumnAbsolute:=False) & _
"+" & Cells(r, j - 1).Address(RowAbsolute:=False, ColumnAbsolute:=False)
Next j
ElseIf InStr(1, tmp, "A-") = 1 Then
dj = 1
ElseIf rng(i, 7) Like "công" Then
dj = 2
ElseIf InStr(1, tmp, "C-") = 1 Then
dj = 3
End If
If dj > 0 Then
For j = 11 To 17 Step 2
c = (j - 11) * 2 + 26
sh.Cells(r, c + dj).Formula = "=" & rng(i, j).Address(RowAbsolute:=False, ColumnAbsolute:=False)
Next j
End If
Next i
Application.ScreenUpdating = True
Application.Calculation = xlAutomatic
End Sub
Em cảm ơn anh nhé. Đã xử lý được vấn đề rồi anh ah. Do công việc của em đợt này bận quá nên đưa chủ đề ra nhờ các anh giúp đỡ mà bản thân lại ko bám sát được. Mong các anh thông cảm cho em nhé.Chỉnh lại . . .
Mã:Sub XYZABC() Dim sh As Worksheet, rng As Range Dim eRow&, i&, r&, j&, c&, dj&, tmp$ Application.ScreenUpdating = False Application.Calculation = xlManual Set sh = Sheets("5.DGCT") eRow = sh.Cells(Rows.Count, "F").End(xlUp).Row Set rng = sh.Range("A1:Q" & eRow) For j = 27 To 39 Step 4 sh.Cells(8, j).Resize(eRow - 7, 4).ClearContents Next j On Error Resume Next For i = 8 To eRow dj = 0 tmp = Replace(rng(i, 6).Value, " ", "") If rng(i, 3) <> Empty Then r = i For j = 30 To 42 Step 4 sh.Cells(r, j).Formula = "=" & Cells(r, j - 3).Address(RowAbsolute:=False, ColumnAbsolute:=False) & _ "+" & Cells(r, j - 2).Address(RowAbsolute:=False, ColumnAbsolute:=False) & _ "+" & Cells(r, j - 1).Address(RowAbsolute:=False, ColumnAbsolute:=False) Next j ElseIf InStr(1, tmp, "A-") = 1 Then dj = 1 ElseIf rng(i, 7) Like "công" Then dj = 2 ElseIf InStr(1, tmp, "C-") = 1 Then dj = 3 End If If dj > 0 Then For j = 11 To 17 Step 2 c = (j - 11) * 2 + 26 sh.Cells(r, c + dj).Formula = "=" & rng(i, j).Address(RowAbsolute:=False, ColumnAbsolute:=False) Next j End If Next i Application.ScreenUpdating = True Application.Calculation = xlAutomatic End Sub
Mình thuộc dạng ít nói, vấn đề đã được xử lý nên mình không nói gì thêmNhờ được các anh giúp giải quyết được công việc rất là mừng, nhưng khi cảm ơn các anh các anh cứ im lặng thế này làm em thấy tủi thân ghê.
Có nút Vote bên phải bài viết đó, cám ơn bằng cái đó là các anh mừng rồi nhé. (Như mình vừa vote mẫu cho bạn)Nhờ được các anh giúp giải quyết được công việc rất là mừng, nhưng khi cảm ơn các anh các anh cứ im lặng thế này làm em thấy tủi thân ghê.
Ngược lại, tôi thuộc dạng lắm lời. Tuy nhiên tôi chỉ lắm lời khi nên kia là người biết trọng tiếng mẹ đẻ.Mình thuộc dạng ít nói, vấn đề đã được xử lý nên mình không nói gì thêm
Phải tự mình cố gắng thôi bạn ạ. Đầu tiên là đưa rước cháu ở trường, tám với phụ huynh. Kế dố là cố gắng vác xác đi mấy buổi họp, buổi thể thao, lại atms với phụ huynh. Nếu nhà bạn ở là loại "white picket fence" thì tìm cách làm quen với hàng xóm, mời mọc ăn bánh uống trà. Nếu loại chung cư thì hơi bô xồ, chịu khó tìm nới chơi được thôi.Mình mới qua vài năm, ít giao tiếp vơi người bản xứ vì ngôn ngữ bất đồng