Nhờ mọi người giúp với ạ. Em có 1 file dữ liệu Sheet 1 là một mảng code sản phẩm, Sheet 2 là hiển thị nội dung tên sản phẩm số lượng sản phẩm, sheet 3 là data sản phẩm. Sheet 3 em đã ẩn đi vì em dùng hàm vlook để lấy dữ liệu ra rồi ạ. Nhưng file in tomy chỉ in được 48 mã sản phẩm. Em muốn copy mã 48 sản phẩm nằm trong vùng mảng, lấy dữ liệu theo cột, từ trên xuống sang cột mã sản phẩm để tự động hiển thị theo mã sản phẩm. Rồi in lần lượt 48 sản phẩm. Nhờ các bác giúp em với.
Bạn nói thế thì, mình cũng xin nói lại luôn. Mình là người ít học nên mới nói chuyện như vậy, không biết với phải lên nhờ các bạn chỉ dạy. Còn nếu mình biết rồi thì đã chẳng phải nhọc lòng như vậy. Còn code của bạn, bạn xem lại bài mình, mình cám ơn tất cả các bài tương tác với bài của mình. Bạn xem lại tất cả các bài giảng xem, mọi người đều hướng dẫn theo code của bạn làm, nên mình không biết với phải nhờ mọi người hỗ trợ. Còn để ai nói đánh giá thói quen về người khác thì chưa chắc đã đúng đâu bạn. Mình không được học chuyên sâu thấy khó nhờ các bạn chỉ dạy mà các bạn thấy làm khó ghê.
Bài đã được tự động gộp:
Thật xin lỗi các bác!!! Em cũng mới tìm hiểu về VBA, thấy ý tưởng nào giúp được cho công việc của mình thì em đăng lên để nhờ mọi...
Nhưng file in tomy chỉ in được 48 mã sản phẩm. Em muốn copy mã 48 sản phẩm nằm trong vùng mảng, lấy dữ liệu theo cột, từ trên xuống sang cột mã sản phẩm để tự động hiển thị theo mã sản phẩm. Rồi in lần lượt 48 sản phẩm. Nhờ các bác giúp em với.
Dạ, ý tưởng của em là lấy 48 mã sản phẩm bên vùng mảng từ trên xuống dưới, copy sang sheet 1, rồi in file. Lần lượt lấy 48 mã sản phẩm, lấy hết cột A thì lấy sang cột B, cho đến hết vùng dữ liệu ah? Em sử dụng tem tomy tròn 48, nên mỗi lần sẽ in đc 48 mã sản phẩm ạ. Các bác giúp e chút ạ.
sheet 1 là file mk cần in chỉ có 48 mã sản phẩm. sheet 2 là file mk sắp xếp sản phẩm theo từng nhóm hàng, mỗi nhóm 1 cột. khi mk copy 48 mã sản phẩm từ sheet 2 sang sheet 1, thì dữ liệu của mk sẽ tự động nhảy theo mã sản phẩm đc copy sang.
sheet 1 là file mk cần in chỉ có 48 mã sản phẩm. sheet 2 là file mk sắp xếp sản phẩm theo từng nhóm hàng, mỗi nhóm 1 cột. khi mk copy 48 mã sản phẩm từ sheet 2 sang sheet 1, thì dữ liệu của mk sẽ tự động nhảy theo mã sản phẩm đc copy sang.
Nếu còn muốn người khác giúp thì anh có thể đừng viết tắt trong bài viết.
Có thể thì hãy mô tả bằng hình ảnh rõ ràng 1 chút từng bước thao tác và kết quả mong muốn. Bởi đã đọc những gì anh viết rồi,mà vẫn không hiểu á
Nếu còn muốn người khác giúp thì anh có thể đừng viết tắt trong bài viết.
Có thể thì hãy mô tả bằng hình ảnh rõ ràng 1 chút từng bước thao tác và kết quả mong muốn. Bởi đã đọc những gì anh viết rồi,mà vẫn không hiểu á
Bạn kiên nhẫn thật. Hầu hết những người có tật viết tắt đều lười biếng và chủ quan.
Lười: người viết tắt thường không nhận ra là mình lười hơn người trả lời. Có câu hỏi viết cho rõ ràng cũng không muốn cố gắng.
Chủ quan: người viết tắt thường chủ quan, nghĩ rằng mình viết như vậy ai cũng hiểu.
Dạ thật sự xin lỗi mọi người. Chữ mk là mình viết tắt chữ mình thôi ạ. Ý của mình là chỉ cần copy 48 mã sản phẩm từ mảng dữ liệu ở sheet 2 sang sheet 1 lần lượt từ trên xuống dưới, đến hết mảng dữ liệu là được thôi ạ. Mình xin cám ơn.
Dạ thật sự xin lỗi mọi người. Chữ mk là mình viết tắt chữ mình thôi ạ. Ý của mình là chỉ cần copy 48 mã sản phẩm từ mảng dữ liệu ở sheet 2 sang sheet 1 lần lượt từ trên xuống dưới, đến hết mảng dữ liệu là được thôi ạ. Mình xin cám ơn.
Mình in ra file tomy bạn ah? Mà phần in mình đã Set Print Area rồi mà bạn. Chỉ cần lệnh .PrintOut là được rồi mà bạn ơi. Bạn có thể cho mình xin đoạn code bạn viết để mình tham khảo được không ạ? Mình xin cám ơn.
Mình in ra file tomy bạn ah? Mà phần in mình đã Set Print Area rồi mà bạn. Chỉ cần lệnh .PrintOut là được rồi mà bạn ơi. Bạn có thể cho mình xin đoạn code bạn viết để mình tham khảo được không ạ? Mình xin cám ơn.
Private Sub GDTTP()
Dim MAXb, MAXc, MAXd, MAXe, MAXf, U As Integer
Dim SARR(), RES()
Dim WSPR, WSDT As Worksheet
Dim DA
Application.Calculation = xlCalculationAutomatic
Set WSDT = ThisWorkbook.Sheets("Sheet1")
Set WSPR = ThisWorkbook.Sheets("Temngay2013")
MAXb = WSDT.Range("B" & Rows.Count).End(xlUp).Row
MAXc = WSDT.Range("C" & Rows.Count).End(xlUp).Row
MAXd = WSDT.Range("D" & Rows.Count).End(xlUp).Row
MAXe = WSDT.Range("E" & Rows.Count).End(xlUp).Row
MAXf = WSDT.Range("F" & Rows.Count).End(xlUp).Row
' O DAY MINH CHI LAM MAU O COT B
'===========================================
SARR = WSDT.Range("B2:B" & MAXb).Value
ReDim RES(1 To 48)
For U = 1 To UBound(SARR)
If DA < 48 Then
DA = DA + 1
RES(DA) = SARR(U, 1)
Else
WSPR.Range("V5").Resize(DA).Value = RES
WSPR.Range("V5").Resize(DA).Borders.LineStyle = 1
DA = 0
U = U - 1
Erase RES
ReDim RES(1 To 48)
'THEM CODE DE IN NHU BAN MUON
End If
Next U
'===========================================================
End Sub
Cám ơn duyhuynh9922 nhiều nhé. Mình có chạy thử code rồi, nhưng nó chỉ nhận có 1 giá trị đầu tiên. Mình lại chưa hiểu rõ code của bạn. Nhờ duyhuynh9922 xem lại thêm cho mình chút nữa với. Mình xin cám ơn.
Cám ơn duyhuynh9922 nhiều nhé. Mình có chạy thử code rồi, nhưng nó chỉ nhận có 1 giá trị đầu tiên. Mình lại chưa hiểu rõ code của bạn. Nhờ duyhuynh9922 xem lại thêm cho mình chút nữa với. Mình xin cám ơn.
[CODE]Private Sub PRINTA()
Dim MAXb, MAXc, MAXd, MAXe, MAXf, U As Integer
Dim SARR(), RES()
Dim WSPR, WSDT As Worksheet
Dim DA, G, T
Application.Calculation = xlCalculationAutomatic
Set WSDT = ThisWorkbook.Sheets("Sheet1")
Set WSPR = ThisWorkbook.Sheets("Temngay2013")
MAXb = WSDT.Range("B" & Rows.Count).End(xlUp).Row
MAXc = WSDT.Range("C" & Rows.Count).End(xlUp).Row
MAXd = WSDT.Range("D" & Rows.Count).End(xlUp).Row
MAXe = WSDT.Range("E" & Rows.Count).End(xlUp).Row
MAXf = WSDT.Range("F" & Rows.Count).End(xlUp).Row
' O DAY MINH CHI LAM MAU O COT B
'========================================================
SARR = WSDT.Range("B2:B" & MAXb).Value
ReDim RES(1 To 48)
For U = LBound(SARR) To UBound(SARR)
If DA < 48 Then
DA = DA + 1
RES(DA) = SARR(U, 1)
Else
WSPR.Range("V5:V52").ClearContents
For T = 5 To 52
G = G + 1
WSPR.Range("V" & T).Value = RES(G)
Next T
G = 0
DA = 0
U = U - 1
Erase RES
ReDim RES(1 To 48)
'THEM CODE DE IN NHU BAN MUON
End If
Next U
WSPR.Range("V5:V52").ClearContents
For T = 5 To 52
G = G + 1
WSPR.Range("V" & T).Value = RES(G)
Next T
G = 0
'THEM CODE DE IN NHU BAN MUON
'===========================================================
End Sub
Sub ABC()
Dim iR&, i&, j&, Ws As Worksheet
Set Ws = Sheets("Tem ngay 2013")
With Sheets("Sheet1")
For j = 2 To 6
iR = .Cells(Rows.Count, j).End(3).Row
If iR > 1 Then
For i = 2 To iR Step 48
Ws.Range("V5:V1000").ClearContents
.Cells(i, j).Resize(48).Copy Ws.Range("V5")
Ws.PrintOut
Next
End If
Next
End With
End Sub
Cám ơn các bác. Của bác BuiQuangThuan thì có lấy 48 mã chạy hết cột B sang các cột khác. Nhưng nếu dòng cuối không đủ 48 mã thì lại trống rất nhiều ạ. Bác duyhuynh9922 ơi, mã lần này lại không chạy được chút nào luôn ấy ạ. Bác xem lại giúp e chút với. Em cám ơn các bác ạ.
Cám ơn các bác. Của bác BuiQuangThuan thì có lấy 48 mã chạy hết cột B sang các cột khác. Nhưng nếu dòng cuối không đủ 48 mã thì lại trống rất nhiều ạ. Bác duyhuynh9922 ơi, mã lần này lại không chạy được chút nào luôn ấy ạ. Bác xem lại giúp e chút với. Em cám ơn các bác ạ.
vậy là bạn muốn điền đủ 48 mã 1 lần. Lần cuối cùng thiếu mới thôi hả
Nói ngay lúc đầu là hên xui rồi. Việc giải thích cho người khác hiểu rõ có phải có kết quả rồi không?
Dạ, ý tưởng của em là lấy 48 mã sản phẩm bên vùng mảng từ trên xuống dưới, copy sang sheet 1, rồi in file. Lần lượt lấy 48 mã sản phẩm, lấy hết cột A thì lấy sang cột B, cho đến hết vùng dữ liệu ah? Em sử dụng tem tomy tròn 48, nên mỗi lần sẽ in đc 48 mã sản phẩm ạ. Các bác giúp e chút ạ.
Cám ơn các bác. Của bác BuiQuangThuan thì có lấy 48 mã chạy hết cột B sang các cột khác. Nhưng nếu dòng cuối không đủ 48 mã thì lại trống rất nhiều ạ. Bác duyhuynh9922 ơi, mã lần này lại không chạy được chút nào luôn ấy ạ. Bác xem lại giúp e chút với. Em cám ơn các bác ạ.
Dạ vâng Bác, để em kiểm tra lại ạ. Cám ơn HUONGHCKT nhưng code của bạn là chạy theo hàng ngang rồi, code này mk viết rồi, còn của mk là chạy theo cột mà. Cám ơn các bác.
Dạ vâng Bác, để em kiểm tra lại ạ. Cám ơn HUONGHCKT nhưng code của bạn là chạy theo hàng ngang rồi, code này mk viết rồi, còn của mk là chạy theo cột mà. Cám ơn các bác.
Bạn tài và giỏi hơn người khác sao lại còn phải đăng bài để tìm trợ giúp nhỉ? mà lại đăng bài kiểu tù mù để rồi có nhiều đáp án mà vẫn không có đáp án nào đúng với mong muốn? Phải chăng là muốn thử tài thiên hạ và khoe code của mình?
Giờ đọc lại bài #8 của anh @VetMini mới thật sự thấu hiểu anh ấy đã cảnh báo gì. Phải công nhận Anh @VetMini nhìn người chính xác.
Mình không hiểu HUONGHCKT nghĩ sao nữa. Nhưng Mình lên mạng có học và làm theo thì có code chạy được giống như của bạn rồi. Còn vướng mắc của mình là nó không chạy được hết cả mảng dữ liệu. Mình không biết mới lên nhờ mọi người chỉ dẫn, chứ có phải là như bạn nghĩ đâu ạ. Mình chỉ muốn dòng code được tối ưu file in thôi. Mong là bạn đừng hiểu nhầm ạ.
Mình không hiểu HUONGHCKT nghĩ sao nữa. Nhưng Mình lên mạng có học và làm theo thì có code chạy được giống như của bạn rồi. Còn vướng mắc của mình là nó không chạy được hết cả mảng dữ liệu. Mình không biết mới lên nhờ mọi người chỉ dẫn, chứ có phải là như bạn nghĩ đâu ạ. Mình chỉ muốn dòng code được tối ưu file in thôi. Mong là bạn đừng hiểu nhầm ạ.
Bạn nên xem lại mình thì đúng hơn là xem xét lại người khác. Bằng chứng là hết người "Hãy mô tả rõ ràng 1 chút. Cố gắng đọc hiểu rồi mà cũng xin thua rồi. " (bài #2); đến người hỏi "file in tomy là file nào vậy bạn @" (bài #3); đến khi có người cho code (bài#12) rồi mà vẫn phải sửa lại, (chữa cháy-#14) để rồi vẫn phải lý giải, trình bày lại với bạn (bài#19). Đến tôi thì mang vạ để được tẻ mặt khi bạn buông câu (....code này mk viết rồi, còn của mk là chạy theo cột mà...". Còn tôi nghĩ sao à: chả nghĩ sao cả, chỉ thấy anh @VetMini nói đúng (bài#8), thế thôi.
Bạn nói thế thì, mình cũng xin nói lại luôn. Mình là người ít học nên mới nói chuyện như vậy, không biết với phải lên nhờ các bạn chỉ dạy. Còn nếu mình biết rồi thì đã chẳng phải nhọc lòng như vậy. Còn code của bạn, bạn xem lại bài mình, mình cám ơn tất cả các bài tương tác với bài của mình. Bạn xem lại tất cả các bài giảng xem, mọi người đều hướng dẫn theo code của bạn làm, nên mình không biết với phải nhờ mọi người hỗ trợ. Còn để ai nói đánh giá thói quen về người khác thì chưa chắc đã đúng đâu bạn. Mình không được học chuyên sâu thấy khó nhờ các bạn chỉ dạy mà các bạn thấy làm khó ghê.
Bài đã được tự động gộp:
Thật xin lỗi các bác!!! Em cũng mới tìm hiểu về VBA, thấy ý tưởng nào giúp được cho công việc của mình thì em đăng lên để nhờ mọi người hỗ trợ, giúp ích cho công việc thôi. Em không biết thói quen ít học của mình làm ảnh hưởng đến suy nghĩ của mọi người. Thì thật sự em xin lỗi mọi người, mong mọi người giúp đỡ em để thực hiện công việc cho đơn giản thôi. Còn có ai suy nghĩ hay đánh giá về em như thế nào, thì em thực sự xin lỗi vì theo quen của mình ạ bác @VetMini . Em xin chân thành cám ơn bác.
Bài đã được tự động gộp:
Em thật sự xin lỗi mọi người. Nhưng trong bài viết em không biết viết thế nào hay em là đứa ít học nên chưa diễn tả được hết ý, hay là thói quen viết tắt thì xin mọi người bỏ qua ạ. Còn thật sự em cũng lên mạng vào diễn đàn để học hỏi thêm để áp dụng vào công việc của mình cho tốt. Nhưng lại phát sinh ra những vấn đề mọi người suy nghĩ khác đi thì em thật sự xin lỗi. Em chỉ nghĩ đơn giản là mình không biết thì lên nhờ mọi người hỗ trợ giúp đỡ thôi ạ. Mong bác @VetMini bó quá cho em ạ. Em xin chân thành cám ơn.
Bạn nói thế thì, mình cũng xin nói lại luôn. Mình là người ít học nên mới nói chuyện như vậy, không biết với phải lên nhờ các bạn chỉ dạy. Còn nếu mình biết rồi thì đã chẳng phải nhọc lòng như vậy. Còn code của bạn, bạn xem lại bài mình, mình cám ơn tất cả các bài tương tác với bài của mình. Bạn xem lại tất cả các bài giảng xem, mọi người đều hướng dẫn theo code của bạn làm, nên mình không biết với phải nhờ mọi người hỗ trợ. Còn để ai nói đánh giá thói quen về người khác thì chưa chắc đã đúng đâu bạn. Mình không được học chuyên sâu thấy khó nhờ các bạn chỉ dạy mà các bạn thấy làm khó ghê.
Bài đã được tự động gộp:
Thật xin lỗi các bác!!! Em cũng mới tìm hiểu về VBA, thấy ý tưởng nào giúp được cho công việc của mình thì em đăng lên để nhờ mọi người hỗ trợ, giúp ích cho công việc thôi. Em không biết thói quen ít học của mình làm ảnh hưởng đến suy nghĩ của mọi người. Thì thật sự em xin lỗi mọi người, mong mọi người giúp đỡ em để thực hiện công việc cho đơn giản thôi. Còn có ai suy nghĩ hay đánh giá về em như thế nào, thì em thực sự xin lỗi vì theo quen của mình ạ bác @VetMini . Em xin chân thành cám ơn bác.
Bài đã được tự động gộp:
Em thật sự xin lỗi mọi người. Nhưng trong bài viết em không biết viết thế nào hay em là đứa ít học nên chưa diễn tả được hết ý, hay là thói quen viết tắt thì xin mọi người bỏ qua ạ. Còn thật sự em cũng lên mạng vào diễn đàn để học hỏi thêm để áp dụng vào công việc của mình cho tốt. Nhưng lại phát sinh ra những vấn đề mọi người suy nghĩ khác đi thì em thật sự xin lỗi. Em chỉ nghĩ đơn giản là mình không biết thì lên nhờ mọi người hỗ trợ giúp đỡ thôi ạ. Mong bác @VetMini bó quá cho em ạ. Em xin chân thành cám ơn.
Bài #18 code đã giải quyết được vấn đề rồi anh ạ. Với lại thớt nói. Đã code xong rồi. Tức là tất cả code sau đều là tham khảo thôi. Chứ chắc có hay không có cũng không quan trọng nữa rồi
Bạn nói thế thì, mình cũng xin nói lại luôn. Mình là người ít học nên mới nói chuyện như vậy, không biết với phải lên nhờ các bạn chỉ dạy. Còn nếu mình biết rồi thì đã chẳng phải nhọc lòng như vậy. Còn code của bạn, bạn xem lại bài mình, mình cám ơn tất cả các bài tương tác với bài của mình. Bạn xem lại tất cả các bài giảng xem, mọi người đều hướng dẫn theo code của bạn làm, nên mình không biết với phải nhờ mọi người hỗ trợ. Còn để ai nói đánh giá thói quen về người khác thì chưa chắc đã đúng đâu bạn. Mình không được học chuyên sâu thấy khó nhờ các bạn chỉ dạy mà các bạn thấy làm khó ghê.
Bài đã được tự động gộp:
Thật xin lỗi các bác!!! Em cũng mới tìm hiểu về VBA, thấy ý tưởng nào giúp được cho công việc của mình thì em đăng lên để nhờ mọi người hỗ trợ, giúp ích cho công việc thôi. Em không biết thói quen ít học của mình làm ảnh hưởng đến suy nghĩ của mọi người. Thì thật sự em xin lỗi mọi người, mong mọi người giúp đỡ em để thực hiện công việc cho đơn giản thôi. Còn có ai suy nghĩ hay đánh giá về em như thế nào, thì em thực sự xin lỗi vì theo quen của mình ạ bác @VetMini . Em xin chân thành cám ơn bác.
Bài đã được tự động gộp:
Em thật sự xin lỗi mọi người. Nhưng trong bài viết em không biết viết thế nào hay em là đứa ít học nên chưa diễn tả được hết ý, hay là thói quen viết tắt thì xin mọi người bỏ qua ạ. Còn thật sự em cũng lên mạng vào diễn đàn để học hỏi thêm để áp dụng vào công việc của mình cho tốt. Nhưng lại phát sinh ra những vấn đề mọi người suy nghĩ khác đi thì em thật sự xin lỗi. Em chỉ nghĩ đơn giản là mình không biết thì lên nhờ mọi người hỗ trợ giúp đỡ thôi ạ. Mong bác @VetMini bó quá cho em ạ. Em xin chân thành cám ơn.
Cá nhân tôi ghi nhận thiện chí của bạn. Song muốn nói với bạn là:
Theo tôi hiểu và rất nhiều thành viên của diễn đàn này đều công nhận là:
1. Văn hóa của Diễn đàn này là văn hóa thuần Việt :do vậy các kiểu ngôn từ chít, chát (vs, mk, ah,...) , hoặc nửa tây nửa ta (kiểu xăng pha nhớt như là ví dụ: Hello các ace, thanhk các bác......) sẽ khó được chấp nhận, bởi nó thể hiện là bản thân người viết đã không tôn trọng mình thì lấy đâu ra mà tôn trọng người trợ giúp mình. Các ngôn ngữ ngoại quốc khác được sử dụng chỉ khi đó là từ chuyên môn (tiếng Việt dịch ra sẽ không đủ ý của nó truyền tải)
2. Bạn muốn học hỏi, hay xin trợ giúp để phục vụ cho công việc của mình thuận tiện hơn nên bạn nên diễn đàn để mong được đáp ứng điều đó, sẽ có nhiều bạn sẵn sằng giúp bạn, song họ muốn bạn phải trình bày, diễn đạt cho họ hiểu vấn đề mà bạn xin trợ giúp, kết quả mong muốn của bạn là gì? lấy ở đâu?, điều kiện để lấy thế nào?Lấy được thì ghi kết quả vào đâu?... Chứ cứ tù mù để cho người khác đoán (bởi họ có cùng lĩnh vực, cùng môi trường với bạn đâu mà nói qua là họ hiểu được), thời gian và công sức đâu để đi đoán mò ý người khác và từ đó có đoán mò và làm code, công thức cho người khác cũng sẽ dễ dẫn đến sai ý định, sai kết quả (đến nay đã 25 bài rồi mà vẫn chưa đến đích). Nếu là bạn bạn chọn theo cách nào?
Đó là đôi điều tôi muốn nói với bạn để trả lời câu hỏi ( bài#23 "...Mình không hiểu HUONGHCKT nghĩ sao nữa...", của bạn-một người cầu thị và có tính cầu tiến.
Bài #18 code đã giải quyết được vấn đề rồi anh ạ. Với lại thớt nói. Đã code xong rồi. Tức là tất cả code sau đều là tham khảo thôi. Chứ chắc có hay không có cũng không quan trọng nữa rồi
Bài #18 không đúng vì chạy theo dòng, hết dòng thì xuống dòng kế tiếp. Đổi lại chạy theo cột mới đúng ý. Code bài #18 chỉ cần đổi vòng lặp for j ra ngoài for i là xong. Nhớ xóa câu lệnh i = k
Bài #18 không đúng vì chạy theo dòng, hết dòng thì xuống dòng kế tiếp. Đổi lại chạy theo cột mới đúng ý. Code bài #18 chỉ cần đổi vòng lặp for j ra ngoài for i là xong. Nhớ xóa câu lệnh i = k
Hihi. Không phải cháu không biết. Thớt nói code xong rồi. Thì chắc chắn biết code. Nhìn code bài 18 sẽ biết đảo vòng lặp để ra đúng kết quả mong muốn của bản thân mà. Với lại lúc đọc trả lời của thớt. Không muốn thêm bớt gì nữa. Hihi. Nên kệ chú ạ
Hihi. Không phải cháu không biết (1). Thớt nói code xong rồi. Thì chắc chắn biết code (2). Nhìn code bài 18 sẽ biết đảo vòng lặp để ra đúng kết quả mong muốn (3)
Chưa chắc 3 việc:
- (1) Thế có biết phải tốn cả tấn tem Tomy không?
- (2) Chỉ chắc chắn là biết viết code theo dòng, còn theo cột thì không chắc
- (3) Nếu biết đảo vòng lặp thì đã không mở chủ đề này
Ngay đến diễn tả vấn đề còn không biết thì không chắc cái gì về tác giả.