Vấn đề xuất dữ liệu vào sheet tổng hợp (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

spacemanforever

Thành viên hoạt động
Tham gia
8/10/08
Bài viết
113
Được thích
71
Chào mọi người!
Em hiện gặp khó khăn mong mọi người hỗ trợ.
Nội dung: em lặp 2 sheet: sheet form (chỉ để nhập liệu), Sheet Data (là sheet tổng hợp dữ liệu đã nhập).
--Khi thực add dữ liệu từ sheet form vào sheet data em muốn
1. viết code kiểm tra dữ liệu trùng nhưng không làm --Khìa.
2.Viết code kiểm tra nếu dữ liệu không đủ sẽ báo và xuất hiện 2 tủy chọn ***kiểm tra nhập lại.
***Tiếp tục nhập.
Mọi vấn đề em có nêu rõ trong sheet detail trong file đính kẻm
Cảm ơn mọi người.
 

File đính kèm

Có bạn nào thử dịch bài này ra tiếng Việt dùm cái không vậy các bạn!

Đọc chỉ hiểu lờ mờ nên nhờ bạn nào hiểu & giúp dùm cái; Xin cản ơn trước nhiều lắm!
 
Upvote 0
Chào mọi người!
Em hiện gặp khó khăn mong mọi người hỗ trợ.
Nội dung: em lặp 2 sheet: sheet form (chỉ để nhập liệu), Sheet Data (là sheet tổng hợp dữ liệu đã nhập).
--Khi thực add dữ liệu từ sheet form vào sheet data em muốn
1. viết code kiểm tra dữ liệu trùng nhưng không làm --Khìa.
2.Viết code kiểm tra nếu dữ liệu không đủ sẽ báo và xuất hiện 2 tủy chọn ***kiểm tra nhập lại.
***Tiếp tục nhập.
Mọi vấn đề em có nêu rõ trong sheet detail trong file đính kẻm
Cảm ơn mọi người.
Mọi người hỗ trợ em phần này nhé
Em đã làm cả tuần rồi mà vẫn chưa ra
thanks
 
Upvote 0
em viết được code này nhưng không hiểu tại sao chạy không như mong muốn:
Sub Add()
Dim Answer As VbMsgBoxResult

For i = 1 To 10

If Cells(i + 6, 4).Value <> "" Then
Sheets("Form").Select
A = Cells(i + 6, 4).Value
B = Cells(i + 6, 5).Value
C = Cells(i + 6, 6).Value
D = Cells(i + 6, 7).Value

Shift = Cells(i + 6, 2).Value
Hours = Cells(i + 6, 3).Value

Sheets("Data").Select
n = Cells(1, 2).Value
Cells(1, 1).Select
ActiveCell.Offset(n + 4, 0).Value = Sheets("form").Cells(4, 3).Value
ActiveCell.Offset(n + 4, 1).Value = Shift
ActiveCell.Offset(n + 4, 2).Value = Hours
ActiveCell.Offset(n + 4, 3).Value = A
ActiveCell.Offset(n + 4, 4).Value = B
ActiveCell.Offset(n + 4, 5).Value = C
ActiveCell.Offset(n + 4, 6).Value = D

Else
MsgBox "Please check data again", vbYesNo
If Answer = vbYes Then
Exit Sub
Else
Cells(i + 6, 4).Select
End If

End If
Sheets("form").Select
Next i

End Sub
 
Upvote 0
em viết được code này nhưng không hiểu tại sao chạy không như mong muốn:
-Mình xem nhưng vẫn chưa hiểu lắm yêu cầu của bạn,
nhưng nhìn code thấy các vấn đề sau
If Cells(i + 6, 4).Value <> "" Then
Sheets("Form").Select
A = Cells(i + 6, 4).Value
B = Cells(i + 6, 5).Value
C = Cells(i + 6, 6).Value
D = Cells(i + 6, 7).Value
-là không ổn,chắc bạn định gắn các giá trị A,B,C,D cho các cột D,E,F,G trong sheet Form.Bởi nếu viết thế này nó chỉ nhận giá trị cuối cùng thôi là ô cells(16,4) thôi
-À có phải ý bạn là copy các dữ liệu từ sheet Form sang sheet Data,khi nhấn nút ADD nếu dữ liệu trùng thì kiểm tra lại đúng không?
 
Upvote 0
Mọi hướng dẫn em đã làm trong sheet detail
Mong mọi người giúp dùm
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Chào mọi người!
Em hiện gặp khó khăn mong mọi người hỗ trợ.
Nội dung: em lặp 2 sheet: sheet form (chỉ để nhập liệu), Sheet Data (là sheet tổng hợp dữ liệu đã nhập).
--Khi thực add dữ liệu từ sheet form vào sheet data em muốn
1. viết code kiểm tra dữ liệu trùng nhưng không làm --Khìa.
2.Viết code kiểm tra nếu dữ liệu không đủ sẽ báo và xuất hiện 2 tủy chọn ***kiểm tra nhập lại.
***Tiếp tục nhập.
Mọi vấn đề em có nêu rõ trong sheet detail trong file đính kẻm
Cảm ơn mọi người.
Có ai biết hay có hướng khác hỗ trợ dùm em.
Thanks
 
Upvote 0
Chào mọi người!
Em hiện gặp khó khăn mong mọi người hỗ trợ.
Nội dung: em lặp 2 sheet: sheet form (chỉ để nhập liệu), Sheet Data (là sheet tổng hợp dữ liệu đã nhập).
--Khi thực add dữ liệu từ sheet form vào sheet data em muốn
1. viết code kiểm tra dữ liệu trùng nhưng không làm --Khìa.
2.Viết code kiểm tra nếu dữ liệu không đủ sẽ báo và xuất hiện 2 tủy chọn ***kiểm tra nhập lại.
***Tiếp tục nhập.
Mọi vấn đề em có nêu rõ trong sheet detail trong file đính kẻm
Cảm ơn mọi người.
Em đã làm được đây là code:
Sub Add2()
Dim Shift, Hours, A, B, C, D 'Dt là Date
Dim Dt As String
Dim i As Integer
Dim j As Integer
Set form = Worksheets("form")
Set data = Worksheets("data")
For i = 1 To 6
Dt = form.Range("G7").Offset(-4, 1)
Shift = form.Range("G7").Offset(i - 1, 0)
Hours = form.Range("G7").Offset(i - 1, 1)
A = form.Range("G7").Offset(i - 1, 2)
B = form.Range("G7").Offset(i - 1, 3)
C = form.Range("G7").Offset(i - 1, 4)
D = form.Range("G7").Offset(i - 1, 5)
If A <> "" Then
data.Range("A5").Offset(j, 1) = Shift
data.Range("A5").Offset(j, 2) = Hours
data.Range("A5").Offset(j, 3) = A
data.Range("A5").Offset(j, 4) = B
data.Range("A5").Offset(j, 5) = C
data.Range("A5").Offset(j, 6) = D
data.Range("A5").Offset(j, 0) = Dt
j = j + 1
End If
Next i
End Sub
Cảm ơn sự giúp đỡ của mọi người
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Em đã làm được đây là code:

Cảm ơn sự giúp đỡ của mọi người
-Mình thấy bạn làm thế là ổn rùi mà
-Chỉ cần thêm dòng
PHP:
    Set form = Worksheets("form")
    Set data = Worksheets("data")
        Sheets("Data").Range("A5:G100").ClearContents
là Ok mà,cần gì phải làm MsgBox để kiểm tra nữa,vì mỗi lần nhấn là dữ liệu đã được cập nhật lại,bạn cứ điều chỉnh rùi cho chạy,kiểm tra OK mà.
 
Upvote 0
help me!
bạn nào biết cách làm như hình mình gởi không chỉ với

cảm ơn mọi người nha.untitled.JPG
 
Upvote 0
tìm giúp mình hàm tính excel trong hình sau:untitled.JPG
thanks.
 
Upvote 0
Có vẻ nóng lòng lắm nhỉ?

Xài hàm mảng tự tạo nha & ở trang 'Góng' í

PHP:
Option Explicit:        Option Base 1
Function NoiTrong(Rng As Range, Giong As String)
 ReDim MDL(1, 5) As String:         Dim Cls As Range, Jj As Byte
  
 For Each Cls In Rng.Cells(1, 1).Resize(Rng.Count)
   If Cls.Value = Giong Then
      Jj = Jj + 1:      MDL(1, Jj) = Cls.Offset(, 1).Value
   End If
 Next Cls
GPE:  NoiTrong = MDL()
End Function
 

File đính kèm

Upvote 0
Chào mọi người!
Em hiện gặp khó khăn mong mọi người hỗ trợ.
Nội dung: em lặp 2 sheet: sheet form (chỉ để nhập liệu), Sheet Data (là sheet tổng hợp dữ liệu đã nhập).
--Khi thực add dữ liệu từ sheet form sẽ nhập vào sheet data .
Vấn đề trên em đã hoàn thành. Và em có lặp thêm sheet report (Mục đích của sheet này là lấy dữ liệu đã nhập từ sheet data làm báo cáo).
Tuy nhiên có trường hợp như sau em chưa giải quyết được:
---Giả sử ngày 17/10 em nhập số liệu (từ sheet form) add vào sheet data.
---Ngày 18/10 em cũng nhập số liệu (chỉ nhập vào form) không lưu vào sheet data.
--- Ngày 19/10 em nhập số liệu và add vào sheet data.
Như vậy trong sheet data lúc này chỉ có ngày 17 và 19/10 không có ngày 18/10. Em mới tiến hành nhập số liệu (trình tự như trên) cho ngày 18/10 để add vào data. Nếu chạy lại từ code trên thì ngày 18 sẽ nằm dưới ngày 19/10. Em muốn số liệu ngày 18 ngày phải nằm giữa ngày 17- và 19 thì phải làm sao?
Em đang nghĩ theo hướng cho range dữ liệu trong sheet data tự sắp xếp theo thứ tự ngày của cột Date

Mong mọi người hỗ trợ.
Thanks.
 

File đính kèm

Upvote 0
Vấn đề trên em đã hoàn thành. Và em có lặp thêm sheet report (Mục đích của sheet này là lấy dữ liệu đã nhập từ sheet data làm báo cáo).
Tuy nhiên có trường hợp như sau em chưa giải quyết được:
---Giả sử ngày 17/10 em nhập số liệu (từ sheet form) add vào sheet data.
---Ngày 18/10 em cũng nhập số liệu (chỉ nhập vào form) không lưu vào sheet data.
--- Ngày 19/10 em nhập số liệu và add vào sheet data.
Như vậy trong sheet data lúc này chỉ có ngày 17 và 19/10 không có ngày 18/10. Em mới tiến hành nhập số liệu (trình tự như trên) cho ngày 18/10 để add vào data. Nếu chạy lại từ code trên thì ngày 18 sẽ nằm dưới ngày 19/10. Em muốn số liệu ngày 18 ngày phải nằm giữa ngày 17- và 19 thì phải làm sao?
Em đang nghĩ theo hướng cho range dữ liệu trong sheet data tự sắp xếp theo thứ tự ngày của cột Date

Mong mọi người hỗ trợ.
Thanks.
Right Click sheet "Data" ==> View Code ==> chép cái này vào
Mã:
Private Sub Worksheet_Activate()
Range([a4], [a1000].End(xlUp)).Resize(, 7).Sort Key1:=Range("A5"), Order1:=xlAscending, Header:=xlGuess
End Sub
Thân
 
Upvote 0
Em đang làm xuất dữ liệu từ file tổng hợp (sheet data) ra sheet khác (sheet report) theo điều kiện là nếu các giá trị :Date, Shift, hours của sheet report và sheet data trùng thì xuất giá trị đi kèm (gồm A,B,C,D) xuất vào sheet report.
Ngoài ra, còn kèm theo điều kiện:
---nếu kiểm tra trong sheet report có dòng trống (ở đây là dòng ở cột shift) thì dừng xuất.
Nguyên tắc chung là em cố định các giá trị (Date, Shift, hours) trong sheet report để kiểm tra trong sheet data, nếu kiểm tra hết trong sheet data mà ko có dữ liệu trùng thì quay lai sheet report chọn giá trị dòng tiếp theo.
Em đang làm code nhưng chưa chạy được:
PHP:
Sub Export()
Dim i As Integer
  
    Set rp = Worksheets("report")
    Set data = Worksheets("data")
        
For j = 1 To 50000
        Dtrp = rp.Range("A6").Offset(-3, 5)
        Shiftrp = rp.Range("A6").Offset(i, 0)
        Hoursrp = rp.Range("A6").Offset(i, 1)

        Dtdata = data.Range("A5").Offset(j, 0)
        Shiftdata = data.Range("A5").Offset(j, 1)
        Hoursdata = data.Range("A5").Offset(j, 2)
        Adata = data.Range("A5").Offset(j, 3)
        Bdata = data.Range("A5").Offset(j, 4)
        Cdata = data.Range("A5").Offset(j, 5)
        Ddata = data.Range("A5").Offset(j, 6)
     If Shiftdata <> "" Then
        If Dtrp = Dtdata Or Shiftrp = Shiftdata Or Hoursrp = Hoursdata Then
           rp.Range("A6").Offset(i, 2) = Adata
           rp.Range("A6").Offset(i, 3) = Bdata
           rp.Range("A6").Offset(i, 4) = Cdata
           rp.Range("A6").Offset(i, 5) = Ddata
           i = i + 1

        End If
     Else
        Exit For
     End If
Next j
End Sub
Nhờ mọi người giúp đỡ.
Thân chào
 

File đính kèm

Upvote 0
Em đang làm xuất dữ liệu từ file tổng hợp (sheet data) ra sheet khác (sheet report) theo điều kiện là nếu các giá trị :Date, Shift, hours của sheet report và sheet data trùng thì xuất giá trị đi kèm (gồm A,B,C,D) xuất vào sheet report.
Ngoài ra, còn kèm theo điều kiện:
---nếu kiểm tra trong sheet report có dòng trống (ở đây là dòng ở cột shift) thì dừng xuất.
Nguyên tắc chung là em cố định các giá trị (Date, Shift, hours) trong sheet report để kiểm tra trong sheet data, nếu kiểm tra hết trong sheet data mà ko có dữ liệu trùng thì quay lai sheet report chọn giá trị dòng tiếp theo.
Em đang làm code nhưng chưa chạy được:
PHP:
Sub Export()
Dim i As Integer
  
    Set rp = Worksheets("report")
    Set data = Worksheets("data")
        
For j = 1 To 50000
        Dtrp = rp.Range("A6").Offset(-3, 5)
        Shiftrp = rp.Range("A6").Offset(i, 0)
        Hoursrp = rp.Range("A6").Offset(i, 1)

        Dtdata = data.Range("A5").Offset(j, 0)
        Shiftdata = data.Range("A5").Offset(j, 1)
        Hoursdata = data.Range("A5").Offset(j, 2)
        Adata = data.Range("A5").Offset(j, 3)
        Bdata = data.Range("A5").Offset(j, 4)
        Cdata = data.Range("A5").Offset(j, 5)
        Ddata = data.Range("A5").Offset(j, 6)
     If Shiftdata <> "" Then
        If Dtrp = Dtdata Or Shiftrp = Shiftdata Or Hoursrp = Hoursdata Then
           rp.Range("A6").Offset(i, 2) = Adata
           rp.Range("A6").Offset(i, 3) = Bdata
           rp.Range("A6").Offset(i, 4) = Cdata
           rp.Range("A6").Offset(i, 5) = Ddata
           i = i + 1

        End If
     Else
        Exit For
     End If
Next j
End Sub
Nhờ mọi người giúp đỡ.
Thân chào
Có phải bài này là nếu ngày (report-F3)=Ngay (Data) and Shift=Shift and Hours=Hours thì lấy các cột A, B, C, D
Tôi thấy bạn hơi máy móc dùng offset quá.
Để tôi xem và chỉnh lại cho.
If Dtrp = Dtdata Or Shiftrp = Shiftdata Or Hoursrp = Hoursdata Then
Vậy là and hay or
 
Lần chỉnh sửa cuối:
Upvote 0
Đúng rồi là and chứ không phải or minh sữa rồi nhưng vẫn chưa chạy được bạn hỗ trợ nha.
PHP:
Sub Export()
Dim i As Integer
  
    Set rp = Worksheets("report")
    Set data = Worksheets("data")
        
For j = 1 To 50000
        Dtrp = rp.Range("A6").Offset(-3, 5)
        Shiftrp = rp.Range("A6").Offset(i, 0)
        Hoursrp = rp.Range("A6").Offset(i, 1)

        Dtdata = data.Range("A5").Offset(j, 0)
        Shiftdata = data.Range("A5").Offset(j, 1)
        Hoursdata = data.Range("A5").Offset(j, 2)
        Adata = data.Range("A5").Offset(j, 3)
        Bdata = data.Range("A5").Offset(j, 4)
        Cdata = data.Range("A5").Offset(j, 5)
        Ddata = data.Range("A5").Offset(j, 6)
     If Shiftdata <> "" Then
        If Dtrp = Dtdata And Shiftrp = Shiftdata And Hoursrp = Hoursdata Then
           rp.Range("A6").Offset(i, 2) = Adata
           rp.Range("A6").Offset(i, 3) = Bdata
           rp.Range("A6").Offset(i, 4) = Cdata
           rp.Range("A6").Offset(i, 5) = Ddata
           i = i + 1

        End If
     Else
        Exit For
     End If
Next j
End Sub
Cảm ơn bạn nhiều
 
Upvote 0
Đúng rồi là and chứ không phải or minh sữa rồi nhưng vẫn chưa chạy được bạn hỗ trợ nha.
Cảm ơn bạn nhiều
Bạn dùng thử code sau, lâu lắm mới viết code theo hướng Range nên hơi lâu.
PHP:
Sub Export1()
Dim i As Long, j As Long, endR As Long
Dim DtRp As Date
Dim DtData As Range, SfData As Range, HrData As Range, ctData As Range, ctRp As Range
Dim SfRp As Range, HrRp As Range
With Sheets("Data")
  endR = .Cells(65000, 1).End(xlUp).Row
  Set DtData = .Range("A5:A" & endR)
  Set SfData = DtData.Offset(, 1)
  Set HrData = DtData.Offset(, 2)
  Set ctData = DtData.Offset(, 3).Resize(, 4)
End With
With Sheets("Report")
  DtRp = .Range("F3")
  endR = .Cells(65000, 1).End(xlUp).Row
  Set SfRp = .Range("A6:A" & endR)
  Set HrRp = SfRp.Offset(, 1)
  Set ctRp = SfRp.Offset(, 2).Resize(, 4)
End With
For i = 1 To DtData.Rows.Count
  If DtData(i, 1) = DtRp Then
    For j = 1 To SfRp.Rows.Count
      If SfData(i, 1) = SfRp(j, 1) Then
        If HrData(i, 1) = HrRp(j, 1) Then
          ctRp.Offset(j - 1, 0).Resize(1, 4).Value = ctData.Offset(i - 1, 0).Resize(1, 4).Value
          Exit For
        End If
      End If
    Next j
  End If
Next i
Set DtData = Nothing: Set SfData = Nothing: Set HrData = Nothing: Set ctData = Nothing
Set SfRp = Nothing: Set HrRp = Nothing: Set ctRp = Nothing
End Sub
 
Upvote 0
Chào Anh Thunghi!
Code của anh rất tuyệt. Chạy rất ok.
Có 1 số chổ sau trên code anh em còn thắc mắc mong anh giải thích hộ:

**Thứ nhất:
PHP:
Set SfData = DtData.Offset(, 1) 
Set HrData = DtData.Offset(, 2) 
Set ctData = DtData.Offset(, 3).Resize(, 4)

Trong ngoặc () thì thường em viết là (0,1) , (1,1).... nhưng ở đây anh viết (,1) thì code nên hiểu như thế nào?
**Thứ 2:
PHP:
endR = .Cells(65000, 1).End(xlUp).Row
phần .End(xlUp).Row em thấy mấy anh viết nhưng chưa hiểu (End(xlUp))?
***Thứ 3:
PHP:
For i = 1 To DtData.Rows.Count
Thường thì For i= 1 to 10, 20,..... vậy ở đây mình To DtData.Rows.Count thì nên hiểu như thế nào?
Mong anh giải thích hộ.
Cảm ơn anh nhiều.
 
Upvote 0
Chào Anh Thunghi!
Code của anh rất tuyệt. Chạy rất ok.
Có 1 số chổ sau trên code anh em còn thắc mắc mong anh giải thích hộ:

**Thứ nhất:
PHP:
Set SfData = DtData.Offset(, 1) 
Set HrData = DtData.Offset(, 2) 
Set ctData = DtData.Offset(, 3).Resize(, 4)

Trong ngoặc () thì thường em viết là (0,1) , (1,1).... nhưng ở đây anh viết (,1) thì code nên hiểu như thế nào?
**Thứ 2:
PHP:
endR = .Cells(65000, 1).End(xlUp).Row
phần .End(xlUp).Row em thấy mấy anh viết nhưng chưa hiểu (End(xlUp))?
***Thứ 3:
PHP:
For i = 1 To DtData.Rows.Count
Thường thì For i= 1 to 10, 20,..... vậy ở đây mình To DtData.Rows.Count thì nên hiểu như thế nào?
Mong anh giải thích hộ.
Cảm ơn anh nhiều.
Xin góp vui một cách làm
Mã:
Public Sub Loc()
    Dim Ws As Worksheet, Vung As Range, Cll As Range, VungR As Range, i As Integer, Sh As String, Wf
        Set Ws = Sheets("data"): Set Wf = Application.WorksheetFunction
        Set Vung = Ws.Range(Ws.[a4], Ws.[a50000].End(xlUp)): Set VungR = Range([a6], [a50000].End(xlUp))
        Range("c6:f28").ClearContents
            With Vung
                .Offset(0, 7).FormulaR1C1 = "=RC[-7]&RC[-6]&RC[-5]"
                    For Each Cll In VungR
                        Sh = [f3] & Cll & Cll.Offset(0, 1)
                        If Wf.CountIf(Vung.Offset(0, 7), Sh) > 0 Then
                            i = Wf.Match(Sh, Vung.Offset(0, 7), 0)
                            Cll.Offset(, 2).Resize(, 4).Value = Vung(i).Offset(, 3).Resize(, 4).Value
                        End If
                    Next
            End With
    Ws.Range("h:h").Delete
End Sub
Sẵn trớn, trả lời luôn
1- Offset(Hàng, Cột):
==> Nếu Hàng = 0 ta có thể viết Offset(0,Cột) hoặc Offset(,Cột) máy nó cũng hiểu
==> Nếu Cột = 0 ta có thể viết Offset (Hàng) : máy nó cũng hiểu
2- End(xlup): từ địa chỉ khai báo chạy ngược lên trên. Thí dụ: [A7000].End(Xlup) có nghĩa là Chọn Cell có chứa dữ liệu từ Cell A7000 chạy ngược lên
3- Thường thì For i= 1 to 10, 20,..... vậy ở đây mình To DtData.Rows.Count thì nên hiểu như thế nào?
Ở đây mình hiểu là biến I chạy từ 1 đến số lượng dòng của vùng DtData
 
Upvote 0
Bây giờ thì em đã hiểu.
Trên cả tuyệt vời.
Cảm ơn các anh đã hỗ trợ.
 
Upvote 0
Cách dùng offset khi chọn range bất kì

Chào các anh!
Em có thắc mắc về OFFSET.:
---nếu ta mặc định range (ví dụ: A1:F8) thì việc dùng offset đơn giản. (Dùng range("A1").offset(i,j)...)
---Nhưng trong trường hợp range bất kỳ (ví dụ A5:D7, hay E4:K8,....) thì việc dùng offset như thế nào.
Mục đích là em muốn dùng để tính tổng cho nhiều range.
Mong các anh góp ý.
}}}}}
 
Upvote 0
Chào các anh!
Em có thắc mắc về OFFSET.:
---nếu ta mặc định range (ví dụ: A1:F8) thì việc dùng offset đơn giản. (Dùng range("A1").offset(i,j)...)
---Nhưng trong trường hợp range bất kỳ (ví dụ A5:D7, hay E4:K8,....) thì việc dùng offset như thế nào.
Mục đích là em muốn dùng để tính tổng cho nhiều range.
Mong các anh góp ý.
}}}}}
Hiểu nôm na là thế này.
Hình dung A5:D7 là 1 hình chữ nhật có 3 dòng 4 cột bắt đầu từ A5.
Vậy offset(i,j) nghĩa là xuống i dòng và qua j cột.
Bạn thử code sau nhé
PHP:
Sub ThuOffset()
Dim myRng as range
Set myrng=Range("A5:D7")
myrng.select
With Selection.Interior
        .ColorIndex = 6
        .Pattern = xlSolid
    End With
myrng.offset(1,1).select
With Selection.Interior
        .ColorIndex = 44
        .Pattern = xlSolid
    End With
end sub
 
Upvote 0
Chào các anh!
Em có thắc mắc về OFFSET.:
---nếu ta mặc định range (ví dụ: A1:F8) thì việc dùng offset đơn giản. (Dùng range("A1").offset(i,j)...)
---Nhưng trong trường hợp range bất kỳ (ví dụ A5:D7, hay E4:K8,....) thì việc dùng offset như thế nào.
Mục đích là em muốn dùng để tính tổng cho nhiều range.
Mong các anh góp ý.
}}}}}
Không biết đang nói đến hàm Offset trong công thức hay Offset của VBA đây ---> 2 cái khác nhau nha!
 
Upvote 0
Code vba offset cho mọi range

Không biết đang nói đến hàm Offset trong công thức hay Offset của VBA đây ---> 2 cái khác nhau nha!
Em muốn hỏi: nếu chọn range bất kì (không phải cố định 1range) thì phải code vba nào?
em có ý tưởng nếu chọn 1 range bất kỳ thì nó sẽ offset từ select cell trên cùng bên góc trái, nhưng ko biết code thế nào.
----> Hiểu nôm na là chỉ cần 1 đoạn code vba thì khi chọn bất kỳ range nào đều có thể dùng được.
---vấn đề này rất nan giải em tìm chưa ra mong các anh hỗ trợ----
cảm ơn các anh
 
Lần chỉnh sửa cuối:
Upvote 0
Em muốn hỏi: nếu chọn range bất kì (không phải cố định 1range) thì phải code vba nào?
em có ý tưởng nếu chọn 1 range bất kỳ thì nó sẽ offset từ select cell trên cùng bên góc trái, nhưng ko biết code thế nào.
----> Hiểu nôm na là chỉ cần 1 đoạn code vba thì khi chọn bất kỳ range nào đều có thể dùng được.
---vấn đề này rất nan giải em tìm chưa ra mong các anh hỗ trợ----
cảm ơn các anh
Cell trên cùng bên góc trái của Selection chính là Selection(1,1)
Thế thôi!
Ví dụ:
PHP:
Sub Test
  Dim Rng as Range
  Set Rng = Selection
  Rng(1,1).Offset(... gì gì đó tùy bạn...)
End Sub
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom