Lấy Dữ liệu từ nhiều file về file chứa Marco, Mong các Anh giúp em (1 người xem)

Liên hệ QC

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

alias1313

Thành viên hoạt động
Tham gia
7/4/17
Bài viết
163
Được thích
13
Em có rất nhiều file thu chi đăt tên là : So1, So2……So15, Em dùng 1 file TONGKET.Sheet("TINHTONG") add marco để mở các file(So1,So2,….So15) tính toán chốt lời 12 tháng rồi lấy kp về
Em chốt lời từng tháng ( = thu-chi), được kết quả add qua 1 file TONGKET
Em muốn dùng for... Next để tính tổng và lấy kết quả ra file khác ..nhưng làm hoài không được
Anh nào biết chỉ em với…….
 

File đính kèm

Tiêu đề Ca khó (vi phạm nội quy).
Sheet1 File So1 có ví dụ trớt qướt từng tháng có 4 con số, số thu lại nhỏ hơn số chi (làm ăn kiểu này chỉ cần 1 tháng là bán doanh nghiệp là cái chắc).
 
Tiêu đề Ca khó (vi phạm nội quy).
Sheet1 File So1 có ví dụ trớt qướt từng tháng có 4 con số, số thu lại nhỏ hơn số chi (làm ăn kiểu này chỉ cần 1 tháng là bán doanh nghiệp là cái chắc).


Hix.....cái đó ví dụ ...để giải thích yêu càu mà anh.....anh bắt thế em chịu....
Em sửa tiêu đề rồi.....anh giúp em được không anh.....
 

File đính kèm

Em đã sửa tiêu đề...
Em đã up file tính bằng tay.....
Mong anh @HieuCD giúp đỡ....
bạn chú ý chỉnh đúng tên file trong mảng Filename và đuôi file thực tế trong lệnh
Mã:
FileToOpen = Path & Filename(i) & ".xlsx.xlsm"
dùng tên file bài đầu
Mã:
Sub TongHop()
Dim fso As Object, FileToOpen As String, Path As String
Dim Darr(), Arr(), i As Integer, j As Integer
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Filename = Array("", "So1", "So2", "So3", "So4", "So5", "So6", "So7", "So8", "So9", "So10", "So11", "So12", "So13", "So14", "So15")
ReDim Arr(1 To UBound(Filename), 1 To 12)
Set fso = CreateObject("Scripting.FileSystemObject")
Path = ThisWorkbook.Path & "\"
For i = 1 To UBound(Filename)
  FileToOpen = Path & Filename(i) & ".xlsx.xlsm"
  If fso.FileExists(FileToOpen) Then
    Set Wb = Workbooks.Open(FileToOpen, UpdateLinks:=0)
    Darr = Wb.Sheets("Sheet1").Range("E9:AB10").Value
    For j = 1 To UBound(Darr, 2)
      Arr(i, (j + 1) / 2) = Darr(1, j) - Darr(2, j)
    Next j
    Wb.Close False
  End If
Next i
Range("I11").Resize(UBound(Filename), 12) = Arr
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
 
bạn chú ý chỉnh đúng tên file trong mảng Filename và đuôi file thực tế trong lệnh
Mã:
FileToOpen = Path & Filename(i) & ".xlsx.xlsm"
dùng tên file bài đầu
Mã:
Sub TongHop()
Dim fso As Object, FileToOpen As String, Path As String
Dim Darr(), Arr(), i As Integer, j As Integer
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Filename = Array("", "So1", "So2", "So3", "So4", "So5", "So6", "So7", "So8", "So9", "So10", "So11", "So12", "So13", "So14", "So15")
ReDim Arr(1 To UBound(Filename), 1 To 12)
Set fso = CreateObject("Scripting.FileSystemObject")
Path = ThisWorkbook.Path & "\"
For i = 1 To UBound(Filename)
  FileToOpen = Path & Filename(i) & ".xlsx.xlsm"
  If fso.FileExists(FileToOpen) Then
    Set Wb = Workbooks.Open(FileToOpen, UpdateLinks:=0)
    Darr = Wb.Sheets("Sheet1").Range("E9:AB10").Value
    For j = 1 To UBound(Darr, 2)
      Arr(i, (j + 1) / 2) = Darr(1, j) - Darr(2, j)
    Next j
    Wb.Close False
  End If
Next i
Range("I11").Resize(UBound(Filename), 12) = Arr
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Những câu lệnh mà anh sử dụng...thật gắn gọn và hết sức độc đáo..
Em đã chạy thử nhưng nó bị lỗi chổ vòng for..em chưa tìm ra nguyên nhân.

Anh có thể giải thích giúp em đoạn code:
"Darr(1, j) - Darr(2, j)" ( 1,2 ở đây em chưa hiểu là gì..)
Arr(i, (j + 1) / 2) = Darr(1, j) - Darr(2, j)

Cảm ơn anh @HieuCD rất nhiều....
 
Những câu lệnh mà anh sử dụng...thật gắn gọn và hết sức độc đáo..
Em đã chạy thử nhưng nó bị lỗi chổ vòng for..em chưa tìm ra nguyên nhân.

Anh có thể giải thích giúp em đoạn code:

Nịnh phát sợ luôn. Đã không hiểu code thì độc đáo ở chỗ nào?
 
Những câu lệnh mà anh sử dụng...thật gắn gọn và hết sức độc đáo..
Em đã chạy thử nhưng nó bị lỗi chổ vòng for..em chưa tìm ra nguyên nhân.

Anh có thể giải thích giúp em đoạn code:
"Darr(1, j) - Darr(2, j)" ( 1,2 ở đây em chưa hiểu là gì..)
Arr(i, (j + 1) / 2) = Darr(1, j) - Darr(2, j)

Cảm ơn anh @HieuCD rất nhiều....
Darr = Wb.Sheets("Sheet1").Range("E9:AB10").Value là vùng dữ liệu có 2 dòng dòng 1 thu và dòng 2 là chi
"Darr(1, j) - Darr(2, j)": Darr(1, j) là dòng 1 cột j, Darr(2, j) là dòng 2 cột j , trừ nhau ra số tồn cột j
Darr 1 tháng có 2 cột ghi vào mảng kết quả Arr chỉ có 1 cột. nên cần qui đổi cột của Darr sang cột của Arr bằng công thức (j+1)/2
bạn chỉnh code của mình hay để nguyên xi mà bị lỗi?
 
Darr = Wb.Sheets("Sheet1").Range("E9:AB10").Value là vùng dữ liệu có 2 dòng dòng 1 thu và dòng 2 là chi
"Darr(1, j) - Darr(2, j)": Darr(1, j) là dòng 1 cột j, Darr(2, j) là dòng 2 cột j , trừ nhau ra số tồn cột j
Darr 1 tháng có 2 cột ghi vào mảng kết quả Arr chỉ có 1 cột. nên cần qui đổi cột của Darr sang cột của Arr bằng công thức (j+1)/2
bạn chỉnh code của mình hay để nguyên xi mà bị lỗi?


Vậy có nghĩa là trong Range("E9:AB10") có hai dòng nên Darr(1, j) là dòng 1 cột j, Darr(2, j) là dòng 2 cột j
Nếu : Darr = Wb.Sheets("Sheet1").Range("E1:AB10") thì : Darr(8, j) là dòng 8 cột j, Darr(10, j) là dòng 10 cột j....có đúng không anh...

Bị sai do em chỉnh lại Darr(1, j) & Darr(2, j)....em hiểu sai 1,2 trong Darr...em quên là Range của nó chỉ có 2 hàng....^_^...Thanks anh @HieuCD nhìu nhìu.....
 
Hiểu chứ anh!..Nhưng hiểu chưa hết...nên em mí hỏi.....^_^....
Nhưng anh có công nhận là đoạn code rất ..hay.... không....

Tôi chỉ chấm code đúng hay sai, có dễ chỉnh sửa hay không thôi.
Chuyện hay hoặc dở đối với tôi nó nằm trong thuật toán.

Trước mắt là bạn chỉnh sửa không được, thuật toán thì bạn cũng chẳng rõ. Thế thì bạn dựa vào gì để khen hay?
 
Vậy có nghĩa là trong Range("E9:AB10") có hai dòng nên Darr(1, j) là dòng 1 cột j, Darr(2, j) là dòng 2 cột j
Nếu : Darr = Wb.Sheets("Sheet1").Range("E1:AB10") thì : Darr(8, j) là dòng 8 cột j, Darr(10, j) là dòng 10 cột j....có đúng không anh...

Bị sai do em chỉnh lại Darr(1, j) & Darr(2, j)....em hiểu sai 1,2 trong Darr...em quên là Range của nó chỉ có 2 hàng....^_^...Thanks anh @HieuCD nhìu nhìu.....
bạn cứ lấy đúng dòng thu trừ dòng chi là được
 
Tôi chỉ chấm code đúng hay sai, có dễ chỉnh sửa hay không thôi.
Chuyện hay hoặc dở đối với tôi nó nằm trong thuật toán.

Trước mắt là bạn chỉnh sửa không được, thuật toán thì bạn cũng chẳng rõ. Thế thì bạn dựa vào gì để khen hay?

.Anh nhận xét thế..có vội vàng quá không ..?...Mà...hìnnh như có vẻ....chúng ta đang ..lạc đề....^_^...
 
bạn cứ lấy đúng dòng thu trừ dòng chi là được

Em hiểu rồi.....em đã sửa lại và code chạy tốt.......Anh cho em hỏi thêm tí...

Đoạn code trên em thêm vào Arr1, Darr1:
ReDim Arr(1 To UBound(Filename), 1 To 12)
Darr1 = Wb.Sheets("Sheet1").Range("C1:AX1").Value
Arr1(i, (j + 1) / 2) = Darr1(1, j) + Darr1(1, (j + 1))

Bước tiếp theo em gán Arr và Arr1 vào chung 1 bảng kết quả, sao cho dòng Arr1 và Arr xen kẽ nhau ( bắt đầu là Arr1), em sử dụng thêm Offset
For n = 0 to 20 step 2
Range("I8").Offset(n, 0).Resize(UBound(CT_Name_Array), 24) = Arr1
Next n
For m = 1 to 21 step 2
Range("I8").Offset(m, 0).Resize(UBound(CT_Name_Array), 24) = Arr
Next n

Nhưng khi ra kết quả..bảng kết quả nó ra có khi toàn Arr1, em chỉnh lai no lai ra toàn Arr

Em giúp em nha...thương thì thương cho chót.....^_^....

Mã:
Sub TongHop()
Dim fso As Object, FileToOpen As String, Path As String
Dim Darr(), Arr(), i As Integer, j As Integer
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Filename = Array("", "So1", "So2", "So3", "So4", "So5", "So6", "So7", "So8", "So9", "So10", "So11", "So12", "So13", "So14", "So15")
ReDim Arr(1 To UBound(Filename), 1 To 12)
ReDim Arr1(1 To UBound(Filename), 1 To 12)
Set fso = CreateObject("Scripting.FileSystemObject")
Path = ThisWorkbook.Path & "\"
For i = 1 To UBound(Filename)
  FileToOpen = Path & Filename(i) & ".xlsx.xlsm"
  If fso.FileExists(FileToOpen) Then
    Set Wb = Workbooks.Open(FileToOpen, UpdateLinks:=0)
    Darr = Wb.Sheets("Sheet1").Range("E9:AB10").Value
   Darr1 = Wb.Sheets("Sheet1").Range("C1:AX1").Value
    For j = 1 To UBound(Darr, 2)
      Arr(i, (j + 1) / 2) = Darr(1, j) - Darr(2, j)
      Arr1(i, (j + 1) / 2) = Darr1(1, j) + Darr1(1, (j+1))
    Next j
    Wb.Close False
  End If
Next i
     For n= 0 to 20 step 2
Range("I8").Offset(n, 0)Resize(UBound(Filename), 12) = Arr1
           Next n
For m= 1 to 21 step 2
Range("I8").Offset(m, 0)Resize(UBound(Filename), 12) = Arr
           Next m
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
 
Lần chỉnh sửa cuối:
Em hiểu rồi.....em đã sửa lại và code chạy tốt.......Anh cho em hỏi thêm tí...

Đoạn code trên em thêm vào Arr1, Darr1:
ReDim Arr(1 To UBound(Filename), 1 To 12)
Darr1 = Wb.Sheets("Sheet1").Range("C1:AX1").Value
Arr1(i, (j + 1) / 2) = Darr1(1, j) + Darr1(1, (j + 1))

Bước tiếp theo em gán Arr và Arr1 vào chung 1 bảng kết quả, sao cho dòng Arr1 và Arr xen kẽ nhau ( bắt đầu là Arr1), em sử dụng thêm Offset
For n = 0 to 20 step 2
Range("I8").Offset(n, 0).Resize(UBound(CT_Name_Array), 24) = Arr1
Next n
For m = 1 to 21 step 2
Range("I8").Offset(m, 0).Resize(UBound(CT_Name_Array), 24) = Arr
Next n

Nhưng khi ra kết quả..bảng kết quả nó ra có khi toàn Arr1, em chỉnh lai no lai ra toàn Arr

Em giúp em nha...thương thì thương cho chót.....^_^....

Sao bạn không đưa dữ liệu luôn từ đầu, mỗi lần đọc lại code, vất vả lắm bạn biết không.
 
Em hiểu rồi.....em đã sửa lại và code chạy tốt.......Anh cho em hỏi thêm tí...

Đoạn code trên em thêm vào Arr1, Darr1:
ReDim Arr(1 To UBound(Filename), 1 To 12)
Darr1 = Wb.Sheets("Sheet1").Range("C1:AX1").Value
Arr1(i, (j + 1) / 2) = Darr1(1, j) + Darr1(1, (j + 1))

Bước tiếp theo em gán Arr và Arr1 vào chung 1 bảng kết quả, sao cho dòng Arr1 và Arr xen kẽ nhau ( bắt đầu là Arr1), em sử dụng thêm Offset
For n = 0 to 20 step 2
Range("I8").Offset(n, 0).Resize(UBound(CT_Name_Array), 24) = Arr1
Next n
For m = 1 to 21 step 2
Range("I8").Offset(m, 0).Resize(UBound(CT_Name_Array), 24) = Arr
Next n

Nhưng khi ra kết quả..bảng kết quả nó ra có khi toàn Arr1, em chỉnh lai no lai ra toàn Arr

Em giúp em nha...thương thì thương cho chót.....^_^....

Mã:
Sub TongHop()
Dim fso As Object, FileToOpen As String, Path As String
Dim Darr(), Arr(), i As Integer, j As Integer
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Filename = Array("", "So1", "So2", "So3", "So4", "So5", "So6", "So7", "So8", "So9", "So10", "So11", "So12", "So13", "So14", "So15")
ReDim Arr(1 To UBound(Filename), 1 To 12)
ReDim Arr1(1 To UBound(Filename), 1 To 12)
Set fso = CreateObject("Scripting.FileSystemObject")
Path = ThisWorkbook.Path & "\"
For i = 1 To UBound(Filename)
  FileToOpen = Path & Filename(i) & ".xlsx.xlsm"
  If fso.FileExists(FileToOpen) Then
    Set Wb = Workbooks.Open(FileToOpen, UpdateLinks:=0)
    Darr = Wb.Sheets("Sheet1").Range("E9:AB10").Value
   Darr1 = Wb.Sheets("Sheet1").Range("C1:AX1").Value
    For j = 1 To UBound(Darr, 2)
      Arr(i, (j + 1) / 2) = Darr(1, j) - Darr(2, j)
      Arr1(i, (j + 1) / 2) = Darr1(1, j) + Darr1(1, (j+1))
    Next j
    Wb.Close False
  End If
Next i
     For n= 0 to 20 step 2
Range("I8").Offset(n, 0)Resize(UBound(Filename), 12) = Arr1
           Next n
For m= 1 to 21 step 2
Range("I8").Offset(m, 0)Resize(UBound(Filename), 12) = Arr
           Next m
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
arr có tới 15 dòng, mỗi lần dán kết quả trong for là 15 dòng, trong khi đó for chỉ step 2 nên đè lên kết quả trước
 
arr có tới 15 dòng, mỗi lần dán kết quả trong for là 15 dòng, trong khi đó for chỉ step 2 nên đè lên kết quả trước

em thử bỏ bớt 1 mảng và thủ offset mảng còn lai:

For n= 0 to 28 step 2
Range("I8").Offset(n, 0)Resize(30, 12) = Arr
Next n
Nhưng offset vẫn không có tác dụng nó vẫn chỉ Add vào 15 dòng đầu tiên, còn 15 dòng sau bị lỗi #N/A
 
.Anh nhận xét thế..có vội vàng quá không ..?...Mà...hìnnh như có vẻ....chúng ta đang ..lạc đề....^_^...

Không vội vàng đâu. Tôi chuyên môn nghề kiểm soát xem giải thuật có đáp ứng được vấn đề, và code có thực hiện được giải thuật.

Chỉ có bạn mới vội vàng. Cho nên đến giờ này vẫn chưa giải quyết được vấn đề. Nếu từ đầu bạn suy nghĩ cho chín chắn và hỏi cho cặn kẽ thì đã đỡ cho ngừoi viết code nhiều lắm.
 
Tôi chỉ chấm code đúng hay sai, có dễ chỉnh sửa hay không thôi.
Chuyện hay hoặc dở đối với tôi nó nằm trong thuật toán.

Trước mắt là bạn chỉnh sửa không được, thuật toán thì bạn cũng chẳng rõ. Thế thì bạn dựa vào gì để khen hay?

khen hay vì mình không biết làm, không hiểu người ta đã làm như thế nào.
Khi anh xem 1 tiết mục ảo thuật, tại sao anh khen hay ? đơn giản vì anh không biết nhà ảo thuật đã dùng cách gì.
Khi anh xem 1 tiết mục ca nhạc, tại sao anh khen hay ? đơn giản vì anh không có khả năng hát được như họ.
 
Ví von như vậy không đúng
Ảo thuật dựa trên kỹ thuật "nhìn như vậy mà sự thật khong như vậy". Lập trình là kỹ thuật "rõ ràng đâu ra đấy"
Vì vậy ảo thuật nhìn càng khong hiểu càng hay. Lập trình nguọc lại.

Ca nhạc thì lại càng khác, nó phần lớn thuộc về nghệ thuật chứ không phải kỹ thuật. Nếu tôi muốn phê bình về kỹ thuật trình diễn thì tôi cũng biết qua cách trình diễn của nghệ nhân.

Thực ra chủ thớt cố tình gài tôi ở đoạn "nhưng mà có công nhận đoạn code rất hay không". Trả lời có thì cũng chết mà khong thì mất lòng ngừơi viết code.
Có tài ăn nói nhưng dùng sai chỗ. Tài ăn nói này dùng vào việc diễn tả vấn đề có phải hay hơn không?
Kỹ thuật lập trình hơn phân nửa nằm trong khả năng hiểu và diễn đạt vấn đề. Nếu bạn có thể diễn vấn đề ra thành từng đoạn rành rọt thì sau đó chỉ việc dịch nó ra thành code là xong.
 
pót nhầm- xin lỗi
(bấm nhằm nút reply thay vì edit)
 
Ví von như vậy không đúng
Ảo thuật dựa trên kỹ thuật "nhìn như vậy mà sự thật khong như vậy". Lập trình là kỹ thuật "rõ ràng đâu ra đấy"
Vì vậy ảo thuật nhìn càng khong hiểu càng hay. Lập trình nguọc lại.

Ca nhạc thì lại càng khác, nó phần lớn thuộc về nghệ thuật chứ không phải kỹ thuật. Nếu tôi muốn phê bình về kỹ thuật trình diễn thì tôi cũng biết qua cách trình diễn của nghệ nhân.

Thực ra chủ thớt cố tình gài tôi ở đoạn "nhưng mà có công nhận đoạn code rất hay không". Trả lời có thì cũng chết mà khong thì mất lòng ngừơi viết code.
Có tài ăn nói nhưng dùng sai chỗ. Tài ăn nói này dùng vào việc diễn tả vấn đề có phải hay hơn không?
Kỹ thuật lập trình hơn phân nửa nằm trong khả năng hiểu và diễn đạt vấn đề. Nếu bạn có thể diễn vấn đề ra thành từng đoạn rành rọt thì sau đó chỉ việc dịch nó ra thành code là xong.



Anh thích ví dụ kỹ thuật đúng không?
Tôi nhó lần đầu tiên tôi vào diễn đàn để hỏi: làm sao để tính thời gian thực trong ô excel...
và Thầy @ndu96081631 chỉ tôi chỉ cần đánh vào ô excel + format cell: = now() ..và bạn có thể thấy thời gian.
Và tôi thấy điều đó thật kỳ diệu và độc đáo....và tôi tin nhiều người lần đầu tiếp xúc với lập trình cũng như vậy...

hay như:lần đầu được xem tivi, được thấy và ngồi trên máy bay, lần đầu được sử dụng internet, lần đầu được thấy smart phone......còn bây giờ khi chúng ta đã biết, đã thấy nhiều, đã sử dụng nhiều....thì...

Có thể anh giỏi VBA ( ..là so với tôi thôi...^_^..)...thì anh thấy ..."ồ..có vậy nó cũng khen..thằng này ....
Chúng ta có thể giỏi hơn người khác 1 lĩnh vực nào đó..( chỉ là tức thời thôi anh à...)....không có nghĩa là chúng ta...giỏi hơn họ tất cả các kiến thức khác trong cuộc sống...

Nhưng dù sao..cũng xin cám ơn góp ý của anh là : tôi trình bày chưa tốt, kiến thức VBA còn yếu.....hoàn toàn nhận khuyết điểm....^_^...

P/s: Nhưng nói thật là tôi vẫn thấy Anh thiếu chút ..lịch sự....
Anh @HieuCD đang chỉ bảo tôi rất nhiệt tình và nhiều cái hay....lại bị anh vào làm loãng chủ đề chính....^_^....
 
Lần chỉnh sửa cuối:
em thử bỏ bớt 1 mảng và thủ offset mảng còn lai:

For n= 0 to 28 step 2
Range("I8").Offset(n, 0)Resize(30, 12) = Arr
Next n
Nhưng offset vẫn không có tác dụng nó vẫn chỉ Add vào 15 dòng đầu tiên, còn 15 dòng sau bị lỗi #N/A
Mã:
Filename = Array("", "So1", "So2", "So3", "So4", "So5", "So6", "So7", "So8", "So9", "So10", "So11", "So12", "So13", "So14", "So15")
ReDim Arr(1 To UBound(Filename), 1 To 12)
lệnh trên khai báo số dòng của Arr là UBound(Filename), cụ thể là 15 dòng 12 cột, khi gán giá trị của Arr vào 1 vùng , nếu kích thước vùng lớn hơn kích thức Arr thì vùng dư ra sẽ bị lỗi #NA
Mã:
Range("I8").Offset(n, 0)Resize(30, 12) = Arr
gán Arr vào vùng 30 dòng, 12 cột nên chỉ có kết quả 15 dòng đầu, những dòng sau sẽ bị lỗi
Bạn gởi file lên để mình xem cấu trúc như thế nào và sẽ viết mẩu cho bạn tham khảo
 
Anh thích ví dụ kỹ thuật đúng không?
<...>

Có thể anh giỏi VBA ( ..là so với tôi thôi...^_^..)...thì anh thấy ..."ồ..có vậy nó cũng khen..thằng này ....
Chúng ta có thể giỏi hơn người khác 1 lĩnh vực nào đó..( chỉ là tức thời thôi anh à...)....không có nghĩa là chúng ta...giỏi hơn họ tất cả các kiến thức khác trong cuộc sống...
<...>

P/s: Nhưng nói thật là tôi vẫn thấy Anh thiếu chút ..lịch sự....
Anh @HieuCD đang chỉ bảo tôi rất nhiệt tình và nhiều cái hay....lại bị anh vào làm loãng chủ đề chính....^_^....

(1) Tôi nói chuyện kỹ thuật rất chính xác

(2) Khen có lắm cách khen. Tiếng khen dùng không đúng cách thì trở thành nịnh bợ.
Việc ai giỏi hơn ai, và về lĩnh vực nào bạn khong cần phải nhắc lại, nhiều ngừoi đã nói vói tôi rồi. Và tôi đã trả lời rằng ở diễn đàn này có mấy người giỏi hơn tôi. Nhưng trong số đó không có bạn. Ngoài VBA, tôi còn giỏi hơn bạn ở tiếng Việt. Và đừng nói tới tiếng Anh. Kinh nghiệm cho tôi biết những người giỏi tiếng Anh hơn tôi đều rất thích dùng tiếng Việt, đồng thời rất ngại khi phải dùng tiếng Anh (đối với họ, dùng tiếng Anh có nghĩa là thú nhận mình không biết tiếng Việt phải diễn tả cái đó là gì)

(3) Tôi luôn luôn vỗ ngực ngạo mạn, và khong hề để ý đến chuyện lịch sự.
Về việc loãng chủ đề. Nếu bạn chịu khó hỏi cho đàng hoàng thì từ khoảng bài #11 tôi đã chỉ cho một số thủ thuật để thu gọn code rồi.
 
Lần chỉnh sửa cuối:
(1) Tôi nói chuyện kỹ thuật rất chính xác

(2) Khen có lắm cách khen. Tiếng khen dùng không đúng cách thì trở thành nịnh bợ.
Việc ai giỏi hơn ai, và về lĩnh vực nào bạn khong cần phải nhắc lại, nhiều ngừoi đã nói vói tôi rồi. Và tôi đã trả lời rằng ở diễn đàn này có mấy người giỏi hơn tôi. Nhưng trong số đó không có bạn. Ngoài VBA, tôi còn giỏi hơn bạn ở tiếng Việt. Và đừng nói tới tiếng Anh. Kinh nghiệm cho tôi biết những người giỏi tiếng Anh hơn tôi đều rất thích dùng tiếng Việt, đồng thời rất ngại khi phải dùng tiếng Anh (đối với họ, dùng tiếng Anh có nghĩa là thú nhận mình không biết tiếng Việt phải diễn tả cái đó là gì)

(3) Tôi luôn luôn vỗ ngực ngạo mạn, và khong hề để ý đến chuyện lịch sự.
Về việc loãng chủ đề. Nếu bạn chịu khó hỏi cho đàng hoàng thì từ khoảng bài #11 tôi đã chỉ cho một số thủ thuật để thu gọn code rồi.


1. Anh giỏi tiếng việt ..mà anh có vấn đề về đọc hiểu ...?....anh định nghĩa giùm tôi " nịnh bợ" là gì.....rồi hãy sử dụng nó...^_^....( tôi nghĩ anh chưa hiểu nghĩa của nó đâu...)...
2. ...Rồi ...rồi...anh cái gì cũng giỏi....cứ cho là thế.....Nhưng đến phép lịch sự cũng không có thì....chẳng ích gì....
3. Tôi không hiểu ở đây có gì để cho anh...." vỗ ngực...." ....tự sướng..?...hay đang...ảo tưởng sức mạnh...? .....tỏ ra nguy hiểm....?....nội dung và ý nghĩa mà anh muốn truyền đạt là gì...?..anh có thể cho tôi biết ý nghĩa.....?
4."..đàng hoàng..." ....anh giỏi tiếng việt mà lại thường xuyên có vấn đề về đọc hiểu...anh xem lại xem ...tôi có 1 từ nào không đàng hoàng.....
5. Tất cả những lời khen mà tôi sử dụng trong diễn đàn: đều xuất phát từ sự nể trọng, sự biết ơn và cảm kích bằng cái tâm không hề có sự xảo trá trong đó.

Để đánh giá một con người, một hành động, một lời nói của họ đâu đơn giản như anh nghĩ, tôi phải mất 35 năm mới may mắn hiểu được tấm lòng của cha mẹ mặc dù họ luôn chăm sóc, lo lắng cho tôi mọi lúc,
đôi khi chúng ta mất cả nửa đời người cũng chưa hiểu được một nhân cách.
Trong cuộc sống này chúng ta biết nhìn xuống thì cũng nên biết cách ngước mặt lên......để biết bầu trời này rộng lớn và đẹp biết nhường nào....^_^...
 

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

Back
Top Bottom