Lấy giá trị 1 ô trong sheet, các sheet đặt tên theo này trong tháng. Xin Anh/Chị giúp đỡ!

Liên hệ QC

alias1313

Thành viên hoạt động
Tham gia
7/4/17
Bài viết
163
Được thích
13
Em có tồng cộng 30 sheet đặt tên theo ngày, em cần lấy giá trị của ô trong sheet ngay hôm trước, và em viết 1 đoạn code: '
Mã:
Sub TinhTong()


   Sheets("TinhTong").Select
   controlfile = ActiveWorkbook.Name
   ngay = Range("C3").Value

If DatePart("d", ngay) < 10 Then
       ngay1 = "0" & DatePart("d", ngay)
    Else
        ngay1 = DatePart("d", ngay)
    End If
    tabname = ngay1 - 1
    Worksheets("TinhTong").Range("H6") = Worksheets(tabname).Range("D7").Value

End Sub

11 sheet đầu em đặt tên sheet theo thứ tự 1-11, tương ứng Sheet1-sheet11 ==> code chay ngon lành
ví dụ: em tính tổng ngày 7, H6 = range(''D7").value của sheet6 = 6, đúng theo ý em cần

Nhưng với các Sheet sau em đặt lung tung, ví dụ: sheet 19->30
Sheet20 em đặt tên là: 31
Sheet19 em đặt tên là: 29
Sheet18 em đặt tên là: 30
thì khi tính tổng nó ra không như ý
ví dụ: em tình ngày 20, H6 = range("D7").value của sheet29 ( đúng ra phải là sheet19)
em tính ngày 19, H6 = range("D7").value của sheet30 ( Đúng ra là sheet 18)

Vấn đề của em là khi em gọi tện sheet theo ngày em đặt, nó lại gọi tên sheet theo mặc định( tên cũ)
Có anh nào giúp em giải quyết vấn đề này với, Em có file đính kèm.
Em cảm ơn!
 

File đính kèm

  • TinhToan.xlsm
    35.7 KB · Đọc: 3
Em có tồng cộng 30 sheet đặt tên theo ngày, em cần lấy giá trị của ô trong sheet ngay hôm trước, và em viết 1 đoạn code: '
Mã:
Sub TinhTong()


   Sheets("TinhTong").Select
   controlfile = ActiveWorkbook.Name
   ngay = Range("C3").Value

If DatePart("d", ngay) < 10 Then
       ngay1 = "0" & DatePart("d", ngay)
    Else
        ngay1 = DatePart("d", ngay)
    End If
    tabname = ngay1 - 1
    Worksheets("TinhTong").Range("H6") = Worksheets(tabname).Range("D7").Value

End Sub

11 sheet đầu em đặt tên sheet theo thứ tự 1-11, tương ứng Sheet1-sheet11 ==> code chay ngon lành
ví dụ: em tính tổng ngày 7, H6 = range(''D7").value của sheet6 = 6, đúng theo ý em cần

Nhưng với các Sheet sau em đặt lung tung, ví dụ: sheet 19->30
Sheet20 em đặt tên là: 31
Sheet19 em đặt tên là: 29
Sheet18 em đặt tên là: 30
thì khi tính tổng nó ra không như ý
ví dụ: em tình ngày 20, H6 = range("D7").value của sheet29 ( đúng ra phải là sheet19)
em tính ngày 19, H6 = range("D7").value của sheet30 ( Đúng ra là sheet 18)

Vấn đề của em là khi em gọi tện sheet theo ngày em đặt, nó lại gọi tên sheet theo mặc định( tên cũ)
Có anh nào giúp em giải quyết vấn đề này với, Em có file đính kèm.
Em cảm ơn!
bạn chỉnh lại lệnh
Mã:
tabname = CStr(ngay1 - 1)
 
Web KT
Back
Top Bottom