[Question] Ký tự $ trong vba, Left$ , Right$ (1 người xem)

Liên hệ QC

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

maxft2911

Thành viên chính thức
Tham gia
17/4/15
Bài viết
63
Được thích
0
chào các anh chị, em thấy trong code của anh levanduyet có khai báo Left$ và Right$, không hiểu ký hiệu $ có ý nghĩa và tác dụng gì?
và còn có những kiểu ký hiệu nào khác nữa ko?
Thanks
 
chào các anh chị, em thấy trong code của anh levanduyet có khai báo Left$ và Right$, không hiểu ký hiệu $ có ý nghĩa và tác dụng gì?
và còn có những kiểu ký hiệu nào khác nữa ko?
Thanks
Chép đủ một dòng code đó qua đây coi.
Left$ = Left as string
ký hiệu nào khác:
% = integer: Dim i% = Dim i as integer
&=long: Dim r& = Dim r as long
@ = decimal
! = single
# = double
$ = string
 
Upvote 0
Nếu viết được tiếng Việt thì dùng tiếng Việt thôi
Nếu viết được tiếng Anh thì dùng tiếng Anh thôi
Tôi chỉ hiểu được 1 trong 2. Mà tôi phải hiểu câu hỏi thì mới trả lời được.
 
Upvote 0
hik mấy anh bắt bẻ em dữ quá, đoạn code e đọc được là một bài viết của anh levanduyet viết để rút gọn code thôi.
thank anh befaint rất nhiều
 
Upvote 0
mà em viết tiếng việt mà anh

Bạn cần xem lại phần chính tả và ngữ pháp tiếng Việt. Tiếp đó, bạn lựa chọn từ ngữ để trình bày vấn đề của mình. Trong diễn đàn này, một số thành viên nhiều tuổi (khoảng 50-trên 60 tuổi) nên cần tránh những từ: thanks, thank, hik... Viết thì viết đủ từ: xưng em thì viết rõ là em (chứ e e cái gì, ko ko...), chưa kể lỗi chính tả: Viết hoa đầu câu, viết hoa danh từ riêng (tiếng Việt), chưa kể câu thiếu chủ ngữ... nhiều lắm.
Vậy thôi nha!
 
Upvote 0
Em tiếp thu ý kiến và góp ý của anh befaint, anh giaiphap, có thể do thói quen và em chỉ nghĩ một số từ mình viết như vậy sẽ rút gọn được cách đặt tên, nội dung tiêu đề được rõ ràng hơn thôi. Em cảm ơn sự góp ý thật lòng!
Mà anh befaint, cái vụ lấy file excel từ pdf, nó có khả năng lấy được không anh?
Cảm ơn.
 
Upvote 0
Tôi giải thích cho những bạn thích tìm hiểu thêm về nguồn gôc của VBA trong ngữ cảnh ngôn ngữ lập trình. Chứ nếu chỉ muốn viết VBA thì giải thích như bài #2 là đủ rồi.

VBA là ngôn ngữ của Microsoft dựa theo nguyên lý của ngôn ngữ Basic.
Basic là ngôn ngữ rất xưa. Thời ấy máy tình còn yếu và rất ít ram cho nên ngừoi ta phải sử dụng những phương pháp giúp chương trình giảm ram. Một trong những phương pháp này là cách đặt tên biến. Một số ngôn ngữ dùng luật mặc định. Ví dụ như Fortran IV (thời cổ) mặc định rằng các biến bắt đầu bằng { i, j, k, l, m, m, n } thì là integer và các biến còn lại là float. Riêng Basic thì mặc định rằng các biến string thì kết bằng $, integer thì kết bằng %, và chỗ còn lại là float. Trình dịch đọc các ký hiệu này thì tự động biết giành chỗ trong bộ nhớ cho biến.Từ Dim dùng để khai báo biến thực ra bắt nguồn ở Dimension, tức là từ khoá dùng để khai báo mảng (array).
Việc này thì liên quan gì đến giảm bộ nhớ? Tên biến dài quá cũng tốn bộ nhớ. Basic phiên bản xưa muốn giới hạn tên biến trong vòng 2 bytes, và bạn chỉ có từ A đến Z để đặt tên biến, cần nhiều hơn thì A1, A2,... Chứ không có AA.

Những hàm thư viện của Basic cũng theo tinh thần đó, có dấu $ có nghĩa là nó trả về string, dấu % là trả về integer... Đó là lý do bạn thấy LEFT$, RIGHT$,...
(nhưng cũng có phiên bản Basic không theo tinh thần đó, mà dùng $ để bảo rằng đây là loại hàm thuộc thư viện string, nó có thể trả về dạng khác - điển hình InStr)

Lưu ý là khác với Fortran hay C là ngôn ngữ cần trình dịch từ đầu đến cuối (compiler languages), Basic là ngôn ngữ làm tới đâu dịch tới đó (interpreter languages). Tức là với Basic, bạn có thể chạy khúc đầu đúng ngữ pháp và khi tới khúc dịch không được thì nó dừng lại; khác với Fortran và C, chỉ cần 1 khúc không đúng ngữ pháp là nó không dịch tiếp, khỏi nói chuyện chạy. Về sau này, cái IDE của VBA mới ra thêm những chuyện báo lỗi trước. Tuy nhiên, nếu để ý thì các bạn vẫn thấy trường hợp nó chạy môt lúc rồi báo cho bạn là nó không tìm được 'object' gì gì đó.

Lưu ý quan trọng: cái này chỉ dùng để biết chơi cho vui, và nếu gặp code thì hiểu ngừoi ta làm gì thôi. Chứ đối với hiện nay thì cách khai báo này LỖI THỜI rồi. Các ngôn ngữ lập trình đời mới đều theo hướng đối tượng. Và nếu là thật sự hướng đối tượng thì biến có thể không định trước kiểu.

@chủ thớt: tôi không giao thiệp với những từ ngữ Hi/thanks. Trường hợp ngoại lệ cho những bạn lớn lên ở ngoại quốc, không biết tiếng Việt thì thì tôi sẵn sàng hầu tiếp bằng tiếng Anh.
 
Lần chỉnh sửa cuối:
Upvote 0
Tôi giải thích cho những bạn thích tìm hiểu thêm về nguồn gôc của VBA trong ngữ cảnh ngôn ngữ lập trình. Chứ nếu chỉ muốn viết VBA thì giải thích như bài #2 là đủ rồi.

VBA là ngôn ngữ của Microsoft dựa theo nguyên lý của ngôn ngữ Basic.
Basic là ngôn ngữ rất xưa. Thời ấy máy tình còn yếu và rất ít ram cho nên ngừoi ta phải sử dụng những phương pháp giúp chương trình giảm ram. Một trong những phương pháp này là cách đặt tên biến. Một số ngôn ngữ dùng luật mặc định. Ví dụ như Fortran IV (thời cổ) mặc định rằng các biến bắt đầu bằng { i, j, k, l, m, m, n } thì là integer và các biến còn lại là float. Riêng Basic thì mặc định rằng các biến string thì kết bằng $, integer thì kết bằng %, và chỗ còn lại là float. Trình dịch đọc các ký hiệu này thì tự động biết giành chỗ trong bộ nhớ cho biến.Từ Dim dùng để khai báo biến thực ra bắt nguồn ở Dimension, tức là từ khoá dùng để khai báo mảng (array).
Việc này thì liên quan gì đến giảm bộ nhớ? Tên biến dài quá cũng tốn bộ nhớ. Basic phiên bản xưa muốn giới hạn tên biến trong vòng 2 bytes, và bạn chỉ có từ A đến Z để đặt tên biến, cần nhiều hơn thì A1, A2,... Chứ không có AA.

Những hàm thư viện của Basic cũng theo tinh thần đó, có dấu $ có nghĩa là nó trả về string, dấu % là trả về integer... Đó là lý do bạn thấy LEFT$, RIGHT$,...
(nhưng cũng có phiên bản Basic không theo tinh thần đó, mà dùng $ để bảo rằng đây là loại hàm thuộc thư viện string, nó có thể trả về dạng khác - điển hình InStr)

Lưu ý là khác với Fortran hay C là ngôn ngữ cần trình dịch từ đầu đến cuối (compiler languages), Basic là ngôn ngữ làm tới đâu dịch tới đó (interpreter languages). Tức là với Basic, bạn có thể chạy khúc đầu đúng ngữ pháp và khi tới khúc dịch không được thì nó dừng lại; khác với Fortran và C, chỉ cần 1 khúc không đúng ngữ pháp là nó không dịch tiếp, khỏi nói chuyện chạy. Về sau này, cái IDE của VBA mới ra thêm những chuyện báo lỗi trước. Tuy nhiên, nếu để ý thì các bạn vẫn thấy trường hợp nó chạy môt lúc rồi báo cho bạn là nó không tìm được 'object' gì gì đó.

Lưu ý quan trọng: cái này chỉ dùng để biết chơi cho vui, và nếu gặp code thì hiểu ngừoi ta làm gì thôi. Chứ đối với hiện nay thì cách khai báo này LỖI THỜI rồi. Các ngôn ngữ lập trình đời mới đều theo hướng đối tượng. Và nếu là thật sự hướng đối tượng thì biến có thể không định trước kiểu.

@chủ thớt: tôi không giao thiệp với những từ ngữ Hi/thanks. Trường hợp ngoại lệ cho những bạn lớn lên ở ngoại quốc, không biết tiếng Việt thì thì tôi sẵn sàng hầu tiếp bằng tiếng Anh.
Cảm ơn anh đã góp ý!
 
Upvote 0
Tôi vốn chuyên về lý thuyết. 100 vấn đề về lý thuyết toi có thể trả lời được 99.
Ăn thua là các bạn biết cách hỏi hay không thôi.
 
Upvote 0
vẫn biết bác VetMini kỹ lưỡng, xin hỏi "game thủ" là tiếng anh hay tiếng việt, báo chí vẫn viết đầy ra đấy. bây giờ tiếng việt loạn hết cả rồi. không chấp nhận cũng phải chịu thôi.
 
Lần chỉnh sửa cuối:
Upvote 0
... báo chí vẫn viết đầy ra đấy. bây giờ tiếng việt loạn hết cả rồi. không chấp nhận cũng phải chịu thôi.

Tôi có giải thích rằng mục đích chính là tôi cần dạy con. Tiếng Việt có loạn hay không thì tôi cũng chưa đến đổi phải chấp nhận phương pháp "hãy nghe những gì Bố dạy chứ đừng nhìn những gì Bố làm". Tôi không đủ mặt dầy để nói với nó rằng "Con đừng Hi Dad khi chào bố" trong khi chính mình lên mạng thì hi hiếc tùm lum.

Rất may mắn là nhà tôi còn trữ vài quyển sách giáo dục tiếng Việt. Hiện giờ tôi vẫn chưa có nhu cầu dùng báo chí để dạy con.

Chú: game thủ là tiếng gì không quan trọng. Có những từ ngữ bắt buộc phải dùng tiếng ngoại cho nó gọn. Có khi dùng để tránh hiểu lầm (oái oăm nhỉ)
Ví dụ điển hình là từ Mini trong tên tôi cũng đâu hẳn là thuần Việt. Nhưng toi bắt buộc phải tránh từ VetNhi, VetNho và VetCon, vì ngừoi đọc có thể hiểu lầm tôi muốn mạo hình một đứa trẻ. Từ Mini chỉ có nghĩa nhỏ về hình dáng chứ không phải về tuổi tác.
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom