Những câu hỏi về code, xin giải thích các code, đề nghị các bạn gửi vào đây

Liên hệ QC
Status
Không mở trả lời sau này.

ST-Lu!

Love Wingchun
Tham gia
19/8/08
Bài viết
730
Được thích
546
Nghề nghiệp
Xích lô một thời
Kể từ hôm nay, tất cả những câu hỏi nhờ giải thích dùm một đoạn code, hay là hỏi những vấn đề linh tinh gì liên quan đến cách viết code, đề nghị các bạn gửi chung vào đây.

Những đề tài mới với tiêu đề: "Nhờ giải thích dùm đoạn code", mà không nói rõ là code gì, code dùng để làm gì, sẽ bị xóa.

BQT

----------------------------------------------------------------------------------------------------------------


Em xin được hỏi 2 đoạn code sau có tương đương nhau ?

Cells(Cells.Rows.Count, 1).End(xlUp).Row có tương đương với [A65000].End(xlup).row

Cám ơn các anh chỉ giáo
 
Chỉnh sửa lần cuối bởi điều hành viên:
Mình có đoạn code tự record như sau. Bình thường vẫn chạy tốt nhưng không hiểu sao được một vài hôm thì lại bị hỏng. Nguyên nhân có lẽ là do đoạn code màu đỏ đã không được thực hiện. Các bác xem hộ tại sao nhé

Sub Mergging1()
'
' Mergging Macro
' Macro recorded 2/5/2009 by thuy.dinh
'
' Keyboard Shortcut: Ctrl+Shift+K
'
.....
Columns("B:B").Select
Selection.Replace What:=",", Replacement:=" ", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:= _
False, ReplaceFormat:=False
......
End Sub

Đoạn code màu đỏ dùng để thay thế ký tự "," bằng ký tự " " có trong tất cả các chuỗi trong vùng B:B. Lỗi có thể do nhiều nguyên nhân.

Để có thể biết chính xác nguyên nhân thì bạn vui lòng đính kèm file theo nha. Có file mới biết đước là Bạn muốn làm gì, trong vùng B:B có dữ liệu gì và báo lỗi như thế nào. Nhiều khi nhìn code cũng chưa thật sự hiểu đúng nguyên nhân của vấn đề.
 
Upvote 0
Sửa code này giúp mình với

Mình có đoạn code như sau:

Sub khanh()
Columns("C:C").Select
Selection.TextToColumns Destination:=Range("C1"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 1), Array(11, 1), Array(22, 1), Array(34, 1)), _
TrailingMinusNumbers:=True
End Sub

Code này chạy trên toàn bộ cột C. Bây giờ mình muốn sửa code để nó chỉ chạy trên vùng lựa chọn thì làm thế nào (Vùng lựa chọn chỉ nằm trong một cột), vùng lựa chọn là vùng mà mình bôi đen tren excel.

Các bác giúp với.
 
Upvote 0
Mình có đoạn code như sau:

Sub khanh()
Columns("C:C").Select
Selection.TextToColumns Destination:=Range("C1"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 1), Array(11, 1), Array(22, 1), Array(34, 1)), _
TrailingMinusNumbers:=True
End Sub

Code này chạy trên toàn bộ cột C. Bây giờ mình muốn sửa code để nó chỉ chạy trên vùng lựa chọn thì làm thế nào (Vùng lựa chọn chỉ nằm trong một cột), vùng lựa chọn là vùng mà mình bôi đen tren excel.

Các bác giúp với.
Tôi nghĩ có lẽ chỉ cần vầy là được:
PHP:
Sub khanh()
  With Selection
    .TextToColumns .Cells(1, 1), 2
  End With
End Sub
Bạn thử xem! Nếu có trục trặc hãy đưa file lên nhé
 
Upvote 0
Chưa chặt lắm!

Tôi nghĩ có lẽ chỉ cần vầy là được:
PHP:
Sub khanh()
  With Selection
    .TextToColumns .Cells(1, 1), 2
  End With
End Sub
Bạn thử xem! Nếu có trục trặc hãy đưa file lên nhé

Ta phải khẳng định với nhau, rằng vùng đã chọn chỉ là 1 cột.
PHP:
 If Selection.Columns.Count=1 then .TextToColumns .Cells(1, 1), 2
:-=
 
Upvote 0
Mình có đoạn code như sau:

Sub khanh()
Columns("C:C").Select
Selection.TextToColumns Destination:=Range("C1"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 1), Array(11, 1), Array(22, 1), Array(34, 1)), _
TrailingMinusNumbers:=True
End Sub

Code này chạy trên toàn bộ cột C. Bây giờ mình muốn sửa code để nó chỉ chạy trên vùng lựa chọn thì làm thế nào (Vùng lựa chọn chỉ nằm trong một cột), vùng lựa chọn là vùng mà mình bôi đen tren excel.

Các bác giúp với.
Theo em thì có thể viết như vầy.
PHP:
Sub thu()
Application.InputBox("Quet chon vung", Type:=8).Columns(1).TextToColumns Cells(1, 1), 2
End Sub
Thân.
 
Upvote 0
Theo em thì có thể viết như vầy.
PHP:
Sub thu()
Application.InputBox("Quet chon vung", Type:=8).Columns(1).TextToColumns Cells(1, 1), 2
End Sub
Thân.
Viết sao cũng được... nhưng vì tác giả có nói rằng:
Bây giờ mình muốn sửa code để nó chỉ chạy trên vùng lựa chọn thì làm thế nào (Vùng lựa chọn chỉ nằm trong một cột), vùng lựa chọn là vùng mà mình bôi đen tren excel.
i.
Ta phải khẳng định với nhau, rằng vùng đã chọn chỉ là 1 cột.
PHP:
 If Selection.Columns.Count=1 then .TextToColumns .Cells(1, 1), 2
Vậy em sửa lại
PHP:
Sub khanh()
  With Selection
    if .Columns.Count = 1 then .TextToColumns .Cells(1, 1), 2
  End With
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Không được rùi. Code này là mình tự record với lệnh "text to clumn" vì vậy khi chạy code của các bác chưa được theo ý muốn.
Đoạn text của mình sẽ như sau:
02/11/2008 08:14 AM <PRO> MYLIST

Sau khi chạy xong thì mỗi màu text kia sẽ phải chạy ra là một cột nghĩa là chỉ ra 4 cột thôi.
Chạy code của các bác xong thì lại ra 5 cột, cột thời gian nó bị chia ra làm hai

Các bác xem lại giúp nhé!
 
Upvote 0
Không được rùi. Code này là mình tự record với lệnh "text to clumn" vì vậy khi chạy code của các bác chưa được theo ý muốn.
Đoạn text của mình sẽ như sau:
02/11/2008 08:14 AM <PRO> MYLIST

Sau khi chạy xong thì mỗi màu text kia sẽ phải chạy ra là một cột nghĩa là chỉ ra 4 cột thôi.
Chạy code của các bác xong thì lại ra 5 cột, cột thời gian nó bị chia ra làm hai

Các bác xem lại giúp nhé!
Bạn cứ đưa file lên đi... nói không không thế thì chẳng biết đường nào mà lần (ví dụ ở trên tôi nhìn vào cũng chẳng đoán được nó là mấy cột)
 
Upvote 0
Hii, File của mình cũng chỉ có vậy thôi mà. Tất cả dữ liệu đều ở trong một cột, chính vì vậy mình mới muốn nó chia ra thành 4 cột. Mình gửi file đính kèm nhé!
 

File đính kèm

  • Book1.xls
    13.5 KB · Đọc: 27
Upvote 0
Hii, File của mình cũng chỉ có vậy thôi mà. Tất cả dữ liệu đều ở trong một cột, chính vì vậy mình mới muốn nó chia ra thành 4 cột. Mình gửi file đính kèm nhé!
Chắc là vầy:
PHP:
Sub Tach()
 With Selection
   If .Columns.Count = 1 Then .TextToColumns .Cells(1, 1), xlFixedWidth, _
     FieldInfo:=Array(Array(0, 1), Array(10, 1), Array(21, 1), Array(33, 1))
  End With
End Sub
Bạn thử lại xem
 
Upvote 0
Lần này thì đúng rồi, thanks bạn!
 
Upvote 0
HI các huynh!

Mong các huynh chỉ giáo dùm: Trong Cell A1 nhập AaaaaaaaaR (trong đó R format superscript), khi copy paste trực tiếp thì R vẫn bảo toàn ở trạng thái là superscript; Còn khi tiểu đệ qua cell khác gõ: =A1 thì chữ R không còn ở trạng thái superscript nữa.
Mong các huynh cho giải pháp để Tđ giải quyết vđ của mình, chân thành cảm ơn!
 
Upvote 0
HI các huynh!

Mong các huynh chỉ giáo dùm: Trong Cell A1 nhập AaaaaaaaaR (trong đó R format superscript), khi copy paste trực tiếp thì R vẫn bảo toàn ở trạng thái là superscript; Còn khi tiểu đệ qua cell khác gõ: =A1 thì chữ R không còn ở trạng thái superscript nữa.
Mong các huynh cho giải pháp để Tđ giải quyết vđ của mình, chân thành cảm ơn!
Điều đó đương nhiên, vì công thức chỉ làm nhiệm vụ lấy kết quả, không can thiệp các vấn đề khác như Format ---> Muốn được việc bạn phải dùng cách khác (copy chẳng hạn)... Muốn tự động hơn cho công việc thì dùng macro vậy!
 
Upvote 0
HI ndu96081631,
Làm ơn giúp cái hàm macro xử lý vụ này cái!
Xin cảm ơn!
 
Upvote 0
Cách viết câu lệnh cho một biến quét nhiều vùng ?

Nhờ các bạn chỉ giúp cách viết câu lệnh cho một biến quét nhiều vùng ?

Ví dụ: để biến j quét trong một vùng từ cột 5 đến cột 20 ta viết J = 5 to 20
Tôi muốn cùng một biến J quét 2 vùng từ cột 5 đến cột 10 và từ cột 15 đến cột 20 thì viết như thế nào ?

Xin cảm ơn!
 
Upvote 0
Bạn tham khảo xem sao?!

Nhờ các bạn chỉ giúp cách viết câu lệnh cho một biến quét nhiều vùng ?
Ví dụ: để biến j quét trong một vùng từ cột 5 đến cột 20 ta viết J = 5 to 20
Tôi muốn cùng một biến J quét 2 vùng từ cột 5 đến cột 10 và từ cột 15 đến cột 20 thì viết như thế nào ?
PHP:
Option Explicit
Sub ColorRegions()
 Dim Clls As Range
 
 For Each Clls In Range(Cells(2, 5), Cells(45, 20))
    If Clls.Column < 11 Or Clls.Column > 15 Then _
        Clls.Interior.ColorIndex = 37 + ((Clls.Row + Clls.Column) Mod 2)
 Next Clls
End Sub

cách hai:
Mã:
Option Explicit
Sub Color2Regions()
 Dim Clls As Range
 
 For Each Clls In Union(Range("A2:F12"), Range("H12:K15"))
    Clls.Interior.ColorIndex = 39 - ((Clls.Row + Clls.Column) Mod 2)
 Next Clls
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
HI các huynh,
Làm ơn giúp cái hàm macro xử lý cái phần superscript với vì viết code copy paste thì phần superscript nó nhảy xuống luôn huhuhuh!
Xin cảm ơn!
 
Upvote 0
HI các huynh,
Làm ơn giúp cái hàm macro xử lý cái phần superscript với vì viết code copy paste thì phần superscript nó nhảy xuống luôn huhuhuh!
Xin cảm ơn!
Vậy kết luận cuối cùng là bạn muốn sao? Muốn giử nguyên Format của cell gốc hay bỏ Format
- Muốn giử nguyên thì copy\Paste bình thường
- Muốn bỏ Format, chỉ lấy value thì copy\paste special\value
Cuối cùng: đưa file lên cho nhanh gọn
 
Upvote 0
Hi các huynh!

Làm sao để gõ dấu "hỏi" và dấu"nặng" trong excel macro bằng font unicode!

Xin cảm ơn.
 
Upvote 0
Status
Không mở trả lời sau này.
Web KT
Back
Top Bottom