Học tiếng Nhật: tải bài từ web, sắp xếp, phát âm, dịch nghĩa

Liên hệ QC
Bài này code không khó nhưng tôi thích code của anh @Ba Tê vì suy luận đơn giản ít nhức đầu. Do đó nếu sửa code đó tôi cũng muốn làm đơn giản và không nhức đầu giống vậy. Chứ bài 12 cũng sửa nhưng cứ như tôi thì suy luận quay cuồng cũng không hiểu tại sao dùng Do mà không dùng For next.
Dạ vâng chú, đúng là code được hay không phần lớn là phải tư duy được ạ,code của Thầy BaTe đúng là rất tuyệt chú nhỉ.
Vì sau khi xem các code này con cũng thấy hiểu và có thể code lại được ạ, nghĩa là nó không khó như con đã nghĩ.
Con cảm ơn chú đã tham gia và góp ý ạ.
 
Code của anh @Ba Tê do đơn giản nên có 1 chỗ có thể lỗi và đã chữa cháy, cách mà tôi cũng thường dùng, bạn tìm hiểu xem là chỗ nào?
Trời con chạy thấy không bị lỗi gì thì thấy là ngon lành rồi chú, khi nào lỗi xảy ra thì con mới biết chỗ nào được rồi tìm hiểu để xử lý chú ạ.
Còn đang chạy bình thường mà để phát hiện ra các tính huống lỗi có thể xảy ra thì với kiến thức học trước quên sau của con thế này thì khó cho con rồi.
Mong chú Mỹ chỉ giáo thêm ạ.
Cảm ơn chú Mỹ nhiều ạ.
 
- con chạy thấy không bị lỗi gì
- khó cho con rồi.
- Lão chữa cháy rồi còn đâu mà lỗi :p
- Thử nghĩ xem tại sao bình thường sArr vừa bằng dữ liệu, trường hợp này lại thấy lão ấy offset(2) tức là lớn hơn dữ liệu 2 dòng?
 
- Lão chữa cháy rồi còn đâu mà lỗi :p
- Thử nghĩ xem tại sao bình thường sArr vừa bằng dữ liệu, trường hợp này lại thấy lão ấy offset(2) tức là lớn hơn dữ liệu 2 dòng?
Để ngày mai con ngồi copy toàn bộ dữ liệu từ vựng của 50 bài về rồi chạy thử một phát xem thế nào ạ.. hehe chỉ nghĩ thôi mà thấy háo hức quá chú ạ.
Híc nếu vậy chắc phải thêm một cột bài học nữa rồi phải không chú Mỹ, giống như cột thứ tự để phân biệt là bài nào nữa ạ, nếu không thì không biết học đến đoạn nào là hết bài đó.
 
Để ngày mai con ngồi copy toàn bộ dữ liệu từ vựng của 50 bài về rồi chạy thử một phát xem thế nào ạ.. hehe chỉ nghĩ thôi mà thấy háo hức quá chú ạ.
Híc nếu vậy chắc phải thêm một cột bài học nữa rồi phải không chú Mỹ, giống như cột thứ tự để phân biệt là bài nào nữa ạ, nếu không thì không biết học đến đoạn nào là hết bài đó.
Đâu phải bài tập lúc nửa đêm đâu mà mai với mốt, mới 11 giờ kém 5
 
Đâu phải bài tập lúc nửa đêm đâu mà mai với mốt, mới 11 giờ kém 5
Rồi con dậy làm luôn đây ạ chú chờ con ít phút (khoảng 11h15 con gửi bài lên) , con thiết kế lại cơ sở dữ liệu đee làm cái tool học tập ạ, khi nào chú có hứng thú chú xem và xử lý lại giúp con cho nó tiện ích hơn ạ.
 
Rồi con dậy làm luôn đây ạ chú chờ con ít phút (khoảng 11h15 con gửi bài lên) , con thiết kế lại cơ sở dữ liệu đee làm cái tool học tập ạ, khi nào chú có hứng thú chú xem và xử lý lại giúp con cho nó tiện ích hơn ạ.
Vụ đó mai cũng được. Câu hỏi là tại sao lão kia cho sArr nhiều hơn dữ liệu 2 dòng cần trả lời trước

Lại còn ngồi mần làm gì nữa chời?
Suỵt! Lão ct đang đố code VBA.
 
Lại còn ngồi mần làm gì nữa chời?
File ở bài #7, dán 50 cái link vào đó là xong hết luôn rồi.
Túm váy lại là bài #7 mình chưa làm gì à?

View attachment 250990
Làm luôn rồi mà befaint,
Dữ liệu đổ về file txt xong chỉ việc copy vào Excel là xong.
--------
Ủa dán được cả 50link luôn hả bạn ahihi, sao lợi hại vậy cơ á.
 
50 lần, mỗi lần 1 link. Vậy tay sẽ dẻo. :)
Zời ạ, nẫu cả ruột , cứ tưởng là dán kiểu gì xong một phát nó lấy luôn 50 bài đan hí hửng =))
Bài đã được tự động gộp:

Vụ đó mai cũng được. Câu hỏi là tại sao lão kia cho sArr nhiều hơn dữ liệu 2 dòng cần trả lời trước
Hic đúng là vụ này khó à, con nghĩ một lúc mà chưa ra.
Số dòng của mảng dArr ít hơn số dòng của sArr mà sao lại thế nhỉ?
Con chịu rồi, để con suy nghĩ tiếp rồi trả lời câu này sau ạ. Hic
 
Lần chỉnh sửa cuối:
Bài này code không khó nhưng tôi thích code của anh @Ba Tê vì suy luận đơn giản ít nhức đầu. Do đó nếu sửa code đó tôi cũng muốn làm đơn giản và không nhức đầu giống vậy. Chứ bài 12 cũng sửa nhưng cứ như tôi thì suy luận quay cuồng cũng không hiểu tại sao dùng Do mà không dùng For next.
Nếu For ... Next thì có thể "túm gọn" nó thế này:

PHP:
Option Explicit

Public Sub Gpe()
Const x As Long = 10    'So lan '
Dim sArr(), dArr(), I As Long, K As Long, N As Long, R As Long
    sArr = Range("B2", Range("B100000").End(xlUp).Offset(2)).Value
    R = UBound(sArr)
ReDim dArr(1 To Fix(R * x / 3), 1 To 4)
For I = 1 To R - 3   'Mới sửa lại'
    For N = 1 To x
        K = K + 1
        dArr(K, 1) = sArr(I, 1)
        If sArr(I + 3, 1) = Empty Then
            dArr(K, 3) = sArr(I + 1, 1)
            dArr(K, 4) = sArr(I + 2, 1)
        Else
            dArr(K, 2) = sArr(I + 1, 1)
            dArr(K, 3) = sArr(I + 2, 1)
            dArr(K, 4) = sArr(I + 3, 1)
        End If
    Next N
    I = I + IIf(sArr(I + 3, 1) = Empty, 3, 4)
Next I
    Range("D2").Resize(100000, 4).ClearContents
    Range("D2").Resize(K, 4) = dArr
End Sub
 
Lần chỉnh sửa cuối:
V2 không phải điền gì hết, ấn một phát 'ăn' luôn 50 bài. Vậy được chửa?

Download File >>

View attachment 250995
V2 không phải điền gì hết, ấn một phát 'ăn' luôn 50 bài. Vậy được chửa?

Download File >>

View attachment 250995
Uầy ,,, tool này nhầm, befaint lợi hại quá àh.
Không biết ngoài từ vựng ra có thể lấy các dữ liệu như ngữ pháp, Renshuu B,Kaiwa.... bao kèm cả âm thanh được không vậy befaint, ẩn trong mỗi phần bài tập có cả lời giải nữa bạn ?

Nếu For ... Next thì có thể "túm gọn" nó thế này:

PHP:
Option Explicit

Public Sub Gpe()
Const x As Long = 10    'So lan '
Dim sArr(), dArr(), I As Long, K As Long, N As Long, R As Long
    sArr = Range("B2", Range("B100000").End(xlUp).Offset(2)).Value
    R = UBound(sArr)
ReDim dArr(1 To Fix(R * x / 3), 1 To 4)
For I = 1 To R - 2
    For N = 1 To x
        K = K + 1
        dArr(K, 1) = sArr(I, 1)
        If sArr(I + 3, 1) = Empty Then
            dArr(K, 3) = sArr(I + 1, 1)
            dArr(K, 4) = sArr(I + 2, 1)
        Else
            dArr(K, 2) = sArr(I + 1, 1)
            dArr(K, 3) = sArr(I + 2, 1)
            dArr(K, 4) = sArr(I + 3, 1)
        End If
    Next N
    I = I + IIf(sArr(I + 3, 1) = Empty, 3, 4)
Next I
    Range("D2").Resize(100000, 4).ClearContents
    Range("D2").Resize(K, 4) = dArr
End Sub
Hic Thầy chưa nghỉ ạ, con cảm ơn Thầy nhiều ạ.
 
Rồi con dậy làm luôn đây ạ chú chờ con ít phút (khoảng 11h15 con gửi bài lên) , con thiết kế lại cơ sở dữ liệu đee làm cái tool học tập ạ, khi nào chú có hứng thú chú xem và xử lý lại giúp con cho nó tiện ích hơn ạ.
Con đã thiết kế xong mẫu form kiểu như thế này, thầy @Ba Tê và chú @ptm0412 xem giúp con với ạ:
1607619239562.png

Tool của bạn @befaint , ở quan IT họ cấm không cho sử dụng trừ máy tính của cấp quản lý (nên hôm nay OT đã phải nhờ máy để chạy thử) ạ.
Nếu dùng máy tính cá nhân tự trang bị thì thoải mái ạ.
Bài đã được tự động gộp:

Con đã thiết kế xong mẫu form kiểu như thế này, thầy @Ba Tê và chú @ptm0412 xem giúp con với ạ:
1607619239562.png

Tool của bạn @befaint , ở quan IT họ cấm không cho sử dụng trừ máy tính của cấp quản lý (nên hôm nay OT đã phải nhờ máy để chạy thử) ạ.
Nếu dùng máy tính cá nhân tự trang bị thì thoải mái ạ.
Ahihihi, thành công rồi , con ra kết quả rồi ạ.
OT xin cảm ơn Thầy tất cả mọi người nhiều ạ.
Mã:
Option Explicit

Public Sub Gpe()
'Const x As Long = 10    'So lan '
Dim x As Long, BaiHoc As Long

Dim sArr(), dArr(), I As Long, K As Long, N As Long, R As Long
    sArr = Range("A2", Range("B100000").End(xlUp).Offset(2)).Value
    R = UBound(sArr)
    x = Range("E2").Value
    BaiHoc = Range("D2").Value
ReDim dArr(1 To Fix(R * x / 3), 1 To 5)

For I = 1 To R - 3   'M?i s?a l?i'
    If sArr(I, 1) = BaiHoc Then
        For N = 1 To x
            K = K + 1
            dArr(K, 1) = sArr(I, 1)
            dArr(K, 2) = sArr(I, 2)
            If sArr(I + 3, 2) = Empty Then
                dArr(K, 4) = sArr(I + 1, 2)
                dArr(K, 5) = sArr(I + 2, 2)
            Else
                dArr(K, 3) = sArr(I + 1, 2)
                dArr(K, 4) = sArr(I + 2, 2)
                dArr(K, 5) = sArr(I + 3, 2)
            End If
        Next N
        I = I + IIf(sArr(I + 3, 2) = Empty, 3, 4)
    End If
Next I
    Range("D4").Resize(100000, 5).ClearContents
    Range("D4").Resize(K, 5) = dArr
End Sub
 

File đính kèm

  • JP.xlsx
    35.2 KB · Đọc: 5
Lần chỉnh sửa cuối:
Ghê gớm.Cái gì cũng biết vậy trời javascript,VBE,Python.còn kể thiếu gì nữa không thần tượng? Đoán là HTML cũng biết ít ít vì python và javascript có phần về lập trình web
 
Thử code VBA nhé. 99,99% code sẽ chạy chậm hơn EXE.

Code sẽ tự tải tất cả các bài. Nếu có 50 thì tải 50, nếu có 100 thì tải 100. Chỉ cần nhấn nút "Tải bài" rồi ngồi đợi.

Trong Module1 có Const sheetName = "Sheet1". Tức kết quả tải về sẽ nhập vào sheet1. Nếu sheet nhập có tên khác thì sửa thành tên hiện hành.
 

File đính kèm

  • Tai bai tieng Nhat.xlsm
    22 KB · Đọc: 15
Ghê gớm.Cái gì cũng biết vậy trời javascript,VBE,Python.còn kể thiếu gì nữa không thần tượng? Đoán là HTML cũng biết ít ít vì python và javascript có phần về lập trình web
Cả RPA nữa, giờ mình bí UiPath ngoài lão cái bang này ra không biết hỏi ai nữa... o_O
 
Web KT
Back
Top Bottom