Cách thêm kí tự vào đầu dòng ?

Liên hệ QC

Nguyen Rem

Tất cả chỉ là đưa ra quyết định đúng đắn
Tham gia
23/2/22
Bài viết
211
Được thích
30
Giới tính
Nữ
Em chào các anh chị ^^ . Cũng lâu lắm rồi không đăng bài nhưng mà thôi em không dài dòng đâu :>
Hiện tại em đang có một số khó khăn trong quá trình viết code mong các anh chị cùng giúp em khắc phục nhé :

Vấn đề:
Bình thường em đều viết từ vựng tiếng anh qua một file excel:
1659968433086.png
Em đã từng làm một cái phím tắt trên excel , nó được gán với một macro (marco này được viết và lưu ở một file excel khác Hiện tại nó có tên là "character.xlsm") .
1659968639919.png
Nó dùng với chức năng là thêm kí tự "." vào đầu dòng cái ô của mình đang chọn:
Ví dụ:
1659968800731.png
Nhưng nó không được thông minh cho lắm ^^ (Các anh chị vào module thứ nhất của file "character.xlsm" để xem và chạy thử code) . Nói đến đây mong là các anh chị hiểu vấn đề em đang gặp phải :)))
Code:
1659969088174.png

Minh họa cho thứ đang muốn làm
Ví dụ 1:

1659969280178.png
Lúc để chuột vào một dòng bất kì nào đó trong một ô và nhấn một phím tắt (phím tắt này do mình thiết lập sẵn) thì code sẽ phân tích xem các kí tự nào cùng thuộc một dòng trong ô đó thì nó sẽ thêm kí tự "." vào đầu dòng của dòng đó (Chú ý con chuột trong các bức hình --Nó được giữ nguyên vị trí sau khi nhấn "phím tắt"--)
Kết quả mong muốn:
1659969620046.png

Ví dụ 2:
1659970440055.png
Kết quả mong muốn:
1659969563442.png

Em cảm ơn mọi người đã dành thời gian đọc hết đến đây --Nó thực sự dài-- . Rất mong nhận được sự hỗ trợ từ mọi người ^^
 

File đính kèm

  • 1659969514585.png
    1659969514585.png
    7.2 KB · Đọc: 9
  • E(08-08-2022).xlsx
    9.7 KB · Đọc: 1
  • character.xlsm
    14.8 KB · Đọc: 3
Lần chỉnh sửa cuối:
Hình như đoạn này đi hơi xa so với câu hỏi của em nó rồi :D .
Nhưng nếu nói về sự thuận tiện, thì viết cái addin rồi xử lý file nào thì mở file đó lên chạy addin có phải hơn không?
Thấy nên góp ý thôi, chứ biết nó rời xa chủ đề :D
 
Upvote 0
Cơ mà chổ này để bạn đó đọc Redim em thấy nó chưa nổi bật lắm.
Bạn ạ, tôi trả lời câu hỏi của người ta mà. Người ta bỏ REDIM và hỏi tại sao sai. Còn bạn là đề nghị một code khác không dùng mảng và Redim. Bạn chỉ viết code khác cho người ta chứ bạn có trả lời câu hỏi của người ta đâu? Bạn có nói gì về bản chất cái lỗi đâu.

Còn tôi trả lời trực tiếp câu hỏi của người ta.
--------
@ chủ thớt:
Một bài Toán có nhiều cách giải. Code có nhiều cách viết. Nếu bạn nói là bạn bỏ Redim và bạn nhờ tôi viết code thay thế thì là một chuyện khác. Còn nếu bạn nhờ tôi giải thích tại sao sai thì lại là một chuyện hoàn toàn khác. Câu hỏi của bạn chứng tỏ bạn chưa hiểu nhiều về Array. Và để bạn có kiến thức về Array thì tôi vẫn khuyên bạn đọc về Array, Redim.

Còn nếu chỉ để không bị lỗi, viết code khác thay thế thì quá dễ với tôi nhưng chắc chắn không trả lời được câu hỏi của bạn: Tại sao? Tại sao lại sai?

Nói nôm na thì thế này. Bạn không thể truy cập tới các phần tử của Array để read/write khi nó chưa được phân chia bộ nhớ.

Chạy
Mã:
Sub Test()
Dim a(1 To 5), b()
    Debug.Print a(2)
    Debug.Print b(1)    ' (A)
End Sub
sẽ có lỗi ở dòng (A).

a là mảng đã được phân chia bộ nhớ khi khai báo - bộ nhớ cho 5 phần tử kiểu Variant. b không được phân chia bộ nhớ vì dù có muốn thì cụ tổ của thánh cũng không phân chia được Vì đã biết b lớn nhỏ ra sao đâu, biết nó là mảng 1 chiều hay hai chiều đâu, có biết nó có bao nhiêu dòng cột, phần tử đâu mà phân với chia.

Mảng b chỉ được phân chia bộ nhớ sau khi dùng Redim như bạn. Hoặc vd. b = RANGE.Value. Chỉ sau khi b được phân chia bộ nhớ thì mới có thể truy cập tới các phần tử của mảng b để read/write.

Về câu hỏi của bạn thì tôi đã nói phải đọc về Array và Redim. Còn các vấn đề khác bạn không hỏi nhưng chưa chuẩn thì mọi người đã phân tích.
 
Upvote 0
Bạn ạ, tôi trả lời câu hỏi của người ta mà. Người ta bỏ REDIM và hỏi tại sao sai. Còn bạn là đề nghị một code khác không dùng mảng và Redim. Bạn chỉ viết code khác cho người ta chứ bạn có trả lời câu hỏi của người ta đâu? Bạn có nói gì về bản chất cái lỗi đâu.

Còn tôi trả lời trực tiếp câu hỏi của người ta.
--------
Dạ, cái này em hơi bậy.
 
Upvote 0
Bạn ạ, tôi trả lời câu hỏi của người ta mà. Người ta bỏ REDIM và hỏi tại sao sai. Còn bạn là đề nghị một code khác không dùng mảng và Redim. Bạn chỉ viết code khác cho người ta chứ bạn có trả lời câu hỏi của người ta đâu? Bạn có nói gì về bản chất cái lỗi đâu.

Còn tôi trả lời trực tiếp câu hỏi của người ta.
--------
@ chủ thớt:
Một bài Toán có nhiều cách giải. Code có nhiều cách viết. Nếu bạn nói là bạn bỏ Redim và bạn nhờ tôi viết code thay thế thì là một chuyện khác. Còn nếu bạn nhờ tôi giải thích tại sao sai thì lại là một chuyện hoàn toàn khác. Câu hỏi của bạn chứng tỏ bạn chưa hiểu nhiều về Array. Và để bạn có kiến thức về Array thì tôi vẫn khuyên bạn đọc về Array, Redim.

Còn nếu chỉ để không bị lỗi, viết code khác thay thế thì quá dễ với tôi nhưng chắc chắn không trả lời được câu hỏi của bạn: Tại sao? Tại sao lại sai?

Nói nôm na thì thế này. Bạn không thể truy cập tới các phần tử của Array để read/write khi nó chưa được phân chia bộ nhớ.

Chạy
Mã:
Sub Test()
Dim a(1 To 5), b()
    Debug.Print a(2)
    Debug.Print b(1)    ' (A)
End Sub
sẽ có lỗi ở dòng (A).

a là mảng đã được phân chia bộ nhớ khi khai báo - bộ nhớ cho 5 phần tử kiểu Variant. b không được phân chia bộ nhớ vì dù có muốn thì cụ tổ của thánh cũng không phân chia được Vì đã biết b lớn nhỏ ra sao đâu, biết nó là mảng 1 chiều hay hai chiều đâu, có biết nó có bao nhiêu dòng cột, phần tử đâu mà phân với chia.

Mảng b chỉ được phân chia bộ nhớ sau khi dùng Redim như bạn. Hoặc vd. b = RANGE.Value. Chỉ sau khi b được phân chia bộ nhớ thì mới có thể truy cập tới các phần tử của mảng b để read/write.

Về câu hỏi của bạn thì tôi đã nói phải đọc về Array và Redim. Còn các vấn đề khác bạn không hỏi nhưng chưa chuẩn thì mọi người đã phân tích.
Em cảm ơn anh ạ :))) Em vẫn chưa có thời gian đọc lại(do hết thời gian học môn này rồi) mà anh đã trả lời rồi ^^ Nhưng không sao! Mai em đọc lại rồi sẽ ngẫm thật kĩ nhưng bài viết của anh cũng như mọi người .
Em cảm ơn mọi người đã tham gia và cùng xây dựng chủ đề này ! Em cảm ơn mọi người rất nhiều :> Nếu có gì thắc mắc em sẽ cùng mọi người giải quyết tiếp sau ạ .
 
Upvote 0
Về Array...
Thớt có thể là một thiên tài về học, có thể học code rất nhanh theo thời hạn của mình.
Nhưng xét về độ khiêm nhường trong học hỏi (tôi không nói về thái độ cư xử và lời ăn tiếng nói) thì thớt cầu hơi cao.
Từ đầu, khi thớt hỏi về nơi học thì tôi có cho biết việc gì tầm trung bình trở lên đều phải có kế hoạch. Trong lúc lập kế hoạch thực hiện công việc thì giới hạn và tầm vực là một trong những vấn đề chốt yếu. Trong lúc tiến hành nhất định phải tuân thủ kế hoạch, gặp gì nằm ngoài giới hạn thì xét lại kế hoạch, nếu phải chỉnh sửa thì thêm vào, nếu không cần chỉnh sửa thì bỏ qua.

Việc thớt vướng víu với cấu trúc căn bản của lập trình, Array, chứng tỏ là lúc khởi đầu không có kế hoạch thích đáng.

Việc thớt đi mò mẫm nấy cái con trỏ này nọ trước khi nắm vững cấu trúc dữ liệu chứng tỏ là trong kế hoạch vẽ ra không có xác định giới hạn và tầm vực.

Trong công việc, cái mục đích cuối (tuy mang tên "cuối" nhưng thực tế, nó nằm ngay đầu kế hoạch) là cái quan trọng nhất. Những cái linh tinh khác chỉ làm trì trệ, lạc hướng mục đích thôi.

Những người giúp bài ở đây họ có thể cà khịa kinh tinh là vì mục đích chính của họ là giải sầu chứ không phải học. Nếu họ có thể học thêm được gì thì chỉ là "quà tặng thêm".
 
Upvote 0
Từ đầu, khi thớt hỏi về nơi học thì tôi có cho biết việc gì tầm trung bình trở lên đều phải có kế hoạch. Trong lúc lập kế hoạch thực hiện công việc thì giới hạn và tầm vực là một trong những vấn đề chốt yếu. Trong lúc tiến hành nhất định phải tuân thủ kế hoạch, gặp gì nằm ngoài giới hạn thì xét lại kế hoạch, nếu phải chỉnh sửa thì thêm vào, nếu không cần chỉnh sửa thì bỏ qua.
Trong công việc, cái mục đích cuối (tuy mang tên "cuối" nhưng thực tế, nó nằm ngay đầu kế hoạch) là cái quan trọng nhất. Những cái linh tinh khác chỉ làm trì trệ, lạc hướng mục đích thôi.
Những người giúp bài ở đây họ có thể cà khịa kinh tinh là vì mục đích chính của họ là giải sầu chứ không phải học. Nếu họ có thể học thêm được gì thì chỉ là "quà tặng thêm".
Không biết mai sau những gì em nói ở đây có thay đổi theo thời gian hay là không. Nhưng thôi ! Trong lúc đang hứng hứng thì em lại lan man một chút vậy --dù biết là nó không có lợi trong quá trình tự học cho lắm ^^--
Rất có thể là người "hướng nội"! Nhưng em thì lại rất may mắn là có cơ hội tiếp xúc với khá là nhiều bạn ở mọi lứa tuổi khác nhau , ở các tầm nhận thức khác nhau (Trên tuổi cũng có mà ở dưới tuổi mình cũng có, thậm chí cách mình cả hai thế hệ như trên diễn đàn này chẳng hạn) . Mọi người thường có một tâm thế (xu hướng) là thích kiểu tuyên bố rằng mình đã đạt được cái này cái nọ hay muốn mình phải hoàn thành xong một cái gì đấy . Chắc là do cái "ánh sáng của cái đó" nó quá sáng đi , nên mọi người thường không nhìn ra hoặc quên mất cái thật sự quan trọng đấy là cái gì . Mọi người chắc cũng sẽ đồng ý với em thôi ! Cái thực sự cần nhắc đến đó là quá trình để mình đạt được "cái đó" ? -- "Cái quá trình" mới là thứ đáng để nhắc đến chứ không phải cái đích đến cuối cùng -- . Nếu nhìn đủ sâu thì cái quá trình và đích đến nó thực sự rất giống với hành trình của một đời người . Thứ kiến mình quên ăn quên ngủ , thức đêm trằn trọc là cái mục đích nhưng mà cái mang lại nhiều cung bậc cảm xúc nhất , kiến mình biết mình là ai thì lại phải nhắc đến "quá trình" . Cái quá trình đó chỉ mình mới có thể hiểu và cảm nhận được vì chỉ có mình thấy và chỉ có mình "nếm" cái sự vui , cái sự buồn , cái sự chán và cái sự đau khổ trong từng khoảnh khắc . Cái cảm giác hằng ngày phải vật lộn , phải đổ mồ hôi , cái cảm giác mà không biết ngày mai ăn gì , làm gì , không biết ngày mai mình có làm theo đúng những gì mình vạch ra dự không? , --cái cảm giác không chắc chắn-- Tuy vất vả nhưng lại rất vui và rất sướng ! Vì mình cảm thấy mình thực sự được sống . "Sống" một cách đúng nghĩa ! Cái cảm giác tương tác với mọi thứ vĩnh cửu đang chuyển động xung quanh --Nó thật bình yên đến nhường nào!-- . Cũng giống như nhân vật ông lão trong bộ phim "squid game" chẳng hạn . Ông ta thậm chí còn không ngại nguy hiểm đến tính mạng của mình để nhảy vào trò chơi của chính mình nghĩ ra . Ông ta nhảy vào đó , tương tác với trò chơi chỉ để được nếm lại hương vị của tuổi trẻ , của sự nhiệt huyết , của sự vật lộn , của sự đấu tranh , của sự không chắc chắn khi ông ta đã mất cảm giác đó quá lâu ! . Có thể thấy ! Ông ta tự nguyện làm cái điều "ngớ ngẩn" đó nhưng mà mọi người đâu biết được rằng ông ta đang thực sự khao khát thứ gì ? Làm sao mà mọi người có thể thấy và hiểu được chứ ? --Đây cũng là câu trả lời cho câu hỏi ! Tại sao có nhiều người trên diễn đàn này dù đã lớn tuổi nhưng vẫn cố để cống hiến -- Chắc hẳn vì họ muốn mếm lại của cái sự không chắc chắn của mình hồi còn trẻ mà thôi . Vì chỉ khi làm vậy họ mới thực sự cảm thấy họ được sống , họ mới cảm nhận được cái giá trị của cái cuộc đời này mang lại .
Nói đơn cử như việc đọc sách . Chắc là mọi người cũng đã nghe qua từ khóa "Speed Reading"! . Nó đã từng rất nổi tiếng trên nước mỹ .
1660121672811.png
Cái vẫn đề này một lần nữa lại khẳng định : Nếu ta cứ quan tâm đến mục tiêu: "Làm thế nào để đọc xong 3 cuốn sách trong một tuần" thì thật sự cái giá trị mà mình nhận được chỉ là con số 0 mà thôi . Giá trị của một cuốn sách dường như mất đi tất cả ! Tác giả của của cuốn sách ấy đã tốn rất nhiều thời gian để viết ra nó ! Thậm chí cả một đời người chỉ để viết xong một cuốn sách! Vậy mà ta chỉ đọc trong vỏn vẹn 3 tuần hay để cố để đạt được cái mục tiêu "20000 word/per minute" chỉ vì cái bệnh thành tích thì thật sự ... Cơ bản em chỉ muốn nhắc bản thân: "Phải có một đầu óc tỉnh táo để biết được lúc nào ta trở thành một cái máy và lúc nào đang phát triển trí tuệ bên trong mình . Mình có đang thực sự là học hay không ? hay chỉ cố làm cho xong" --Tất cả chỉ là đưa ra quyết định đúng đắn--

Ở bên trên chỉ hoàn toàn là quan điểm cá nhân của một người lạ và không có ý đụng chạm bất cứ ai cả . Nên mong mọi người chỉ đọc tham khảo mà thôi cũng không nên có cảm xúc thái quá làm gì vì khả năng cao người lạ sẽ không quan tâm
 
Lần chỉnh sửa cuối:
Upvote 0
Mọi người chắc cũng sẽ đồng ý với em thôi ! Cái thực sự cần nhắc đến đó là quá trình để mình đạt được "cái đó" ? -- "Cái quá trình" mới là thứ đáng để nhắc đến chứ không phải cái đích đến cuối cùng
Nếu là việc học, thì mục đích cuối là để giỏi hơn, kết quả cao hơn. Đó là điều chắc chắn, và bác Vẹt cũng đang nói đến việc học. Tất cả các việc bạn nói ở trên đều có cái đích đến, nhưng nó khác nhau. Như tôi này, đích đến kiếm tiền mua sữa cho con là làm sao kiếm được nhiều tiền, chứ không phải là quá trình hôm nay ba làm việc này, việc kia mệt lắm/vui lắm con ạ. Con nhỏ nó cũng chẳng hiểu được. Và có hiểu cũng chẳng nên nói ra. Nhưng không có tiền mua sữa, không có tiền ăn uống, thì đói là nó khóc.. chắc chắn :D
Còn để cảm nhận sự đời, để được sống lại như bạn nó, thì đúng rồi... phải trải qua một quá trình để rồi suy ngẫm lại, hoặc chí ít là sống trong những cung bậc cảm xúc đó. Cái này khác trên mà
Thực tế một chút, nếu việc học mà đích đến không phải là để giỏi hơn mà chỉ là trải nghiệm, vậy muốn qua môn thì phải con cha cháu ông đấy!
 
Upvote 0
Nếu là việc học, thì mục đích cuối là để giỏi hơn, kết quả cao hơn. Đó là điều chắc chắn, và bác Vẹt cũng đang nói đến việc học. Tất cả các việc bạn nói ở trên đều có cái đích đến, nhưng nó khác nhau. Như tôi này, đích đến kiếm tiền mua sữa cho con là làm sao kiếm được nhiều tiền, chứ không phải là quá trình hôm nay ba làm việc này, việc kia mệt lắm/vui lắm con ạ. Con nhỏ nó cũng chẳng hiểu được. Và có hiểu cũng chẳng nên nói ra. Nhưng không có tiền mua sữa, không có tiền ăn uống, thì đói là nó khóc.. chắc chắn :D
Còn để cảm nhận sự đời, để được sống lại như bạn nó, thì đúng rồi... phải trải qua một quá trình để rồi suy ngẫm lại, hoặc chí ít là sống trong những cung bậc cảm xúc đó. Cái này khác trên mà
Thực tế một chút, nếu việc học mà đích đến không phải là để giỏi hơn mà chỉ là trải nghiệm, vậy muốn qua môn thì phải con cha cháu ông đấy!
Bạn hiểu sai cái quá trình mà cô Rem muốn nói rồi. Tôi nghĩ là vậy. :)
 
Upvote 0
Nếu là việc học, thì mục đích cuối là để giỏi hơn, kết quả cao hơn. Đó là điều chắc chắn, và bác Vẹt cũng đang nói đến việc học. Tất cả các việc bạn nói ở trên đều có cái đích đến, nhưng nó khác nhau. Như tôi này, đích đến kiếm tiền mua sữa cho con là làm sao kiếm được nhiều tiền, chứ không phải là quá trình hôm nay ba làm việc này, việc kia mệt lắm/vui lắm con ạ. Con nhỏ nó cũng chẳng hiểu được. Và có hiểu cũng chẳng nên nói ra. Nhưng không có tiền mua sữa, không có tiền ăn uống, thì đói là nó khóc.. chắc chắn :D
Cái giới hạn tôi nói ở trên là đây: bao nhiêu là nhiều tiền?
Ví dụ một tháng làm 22 ngày, ngày làm bình thường 1 triệu thì tương đối nhiều đủ để mua sữa.
Bây giờ có việc ngày 2 triệu nhưng phải làm 14 tiếng/ngày, không còn mấy thời giờ để nói chuyện với con "mệt lắm/vui lắm con ạ" thì thế nào?

My child arrived just the other day
He came to the world in the usual way
But there were planes to catch, and bills to pay
He learned to walk while I was away
...
(Cat's in the Cradle - Harry Chapin, 1974)

Còn để cảm nhận sự đời, để được sống lại như bạn nó, thì đúng rồi... phải trải qua một quá trình để rồi suy ngẫm lại, hoặc chí ít là sống trong những cung bậc cảm xúc đó. Cái này khác trên mà
Người ta còn trẻ, chưa có gia đình. Khác với bạn, suy tính gì cũng phải "con nhỏ" là trên hết. Lại khác với tôi, con lớn rồi, nó ít chăm sóc đến mình thì buồn mà chăm sóc nhiều thì lo (mình là nguồn vui hay là gánh nặng của nó?)

Thực tế một chút, nếu việc học mà đích đến không phải là để giỏi hơn mà chỉ là trải nghiệm, vậy muốn qua môn thì phải con cha cháu ông đấy!
Câu này của bạn có đến 3 lựa chọn chứ không phải 2.
1. giỏi hơn
2. trải nghiệm
3. qua môn
 
Upvote 0
Web KT
Back
Top Bottom