Khai báo biến trong VBA (2 người xem)

  • Thread starter Thread starter xdbk07
  • Ngày gửi Ngày gửi
Liên hệ QC

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

xdbk07

Thành viên mới
Tham gia
18/10/10
Bài viết
2
Được thích
1
Chào các bạn,

Cho mình hỏi khai báo dạng như:

Dim i%
Dim a#
Dim b$

có ý nghĩ gì vậy?

Thanks,
 
Lần chỉnh sửa cuối:
Chào các bạn,

Cho mình hỏi khai báo dạng như:

Dim i%
Dim a#
Dim b$

có ý nghĩ gì vậy?

Thanks,

Dim i% <===> Dim i As Integer
Dim a# <===> Dim a As Double
Dim b$ <===> Dim b As String
Bạn có thể thí nghiệm
Mã:
Sub Test()
  Dim i%
  Dim a#
  Dim b$
  MsgBox TypeName(i)
  MsgBox TypeName(a)
  MsgBox TypeName(b)
End Sub
 
Upvote 0
Dim i% <===> Dim i As Integer
Dim a# <===> Dim a As Double
Dim b$ <===> Dim b As String
Bạn có thể thí nghiệm
Mã:
Sub Test()
  Dim i%
  Dim a#
  Dim b$
  MsgBox TypeName(i)
  MsgBox TypeName(a)
  MsgBox TypeName(b)
End Sub

Viết kiểu này thì chỉ có tác giả và các "đồng chí" của tác giả hiểu thôi, người mới vào "tham quan" VBA thì "bú thù lì"
Híc!
 
Upvote 0
Hi. Tại lính mới mà.

Thanks anh. Cho e hỏi thêm chut nữa nha. Câu lệnh: Dim Arr(1 to n) as integer có ý nghĩ gì vậy. Nó tương đương với mảng như thế nào trong VB.NET. Thanks.
 
Upvote 0
Hi. Tại lính mới mà.

Thanks anh. Cho e hỏi thêm chut nữa nha. Câu lệnh: Dim Arr(1 to n) as integer có ý nghĩ gì vậy. Nó tương đương với mảng như thế nào trong VB.NET. Thanks.

Hổng có cái vụ Dim Arr(1 to n) đâu nha
Thằng n phải là 1 con số cụ thể. Ví dụ Dim Arr(1 to 100) as Integer
Cái vụ Dim Arr(1 to 100) as Integer có nghĩa là mỗi phần tử trong Arr đều có kiểu dữ liệu là Integer
Thế thôi
 
Upvote 0
ah n=số cụ thể. Vậy ma trận cụ thể là gì?
 
Lần chỉnh sửa cuối:
Upvote 0
nhân tiện xin hỏi bác ndu và bà con: còn cái boolean ký hiệu thế nào?
 
Upvote 0
nhân tiện xin hỏi bác ndu và bà con: còn cái boolean ký hiệu thế nào?
String $
Integer %
Long &
Single !
Double #
Currency @
Date # # (thằng này thì chỉ gán chứ không Dim được, tức là chẳng hạn a = #dữ liệu ngày tháng#)

Còn Redim arr(1 to n) thì bản thân n cũng phải có giá trị, nếu không nó sẽ thành Redim arr(1 to 0) thế thì cũng lỗi thôi.
 
Lần chỉnh sửa cuối:
Upvote 0
String $
Integer %
Long &
Single !
Double #
Currency @
Date # # (thằng này thì chỉ gán chứ không Dim được, tức là chẳng hạn a = #dữ liệu ngày tháng#)

Còn Redim arr(1 to n) thì bản thân n cũng phải có giá trị, nếu không nó sẽ thành Redim arr(1 to 0) thế thì cũng lỗi thôi.

Ủa! Kyo trả lời cái gì vậy?
Người ta hỏi Boolean ký hiệu thế nào mà
 
Upvote 0
Ủa! Kyo trả lời cái gì vậy?
Người ta hỏi Boolean ký hiệu thế nào mà
Xin lỗi kyo ghi thiếu, ý kyo là khai báo tắt bằng tiếp vị ngữ theo kyo biết thì chỉ có nhiêu đó thôi, boolean không có.
Dù sao thì khai báo tường minh ra vẫn tốt hơn.
 
Lần chỉnh sửa cuối:
Upvote 0
String $
Integer %
Long &
Single !
Double #
Currency @
Date # # (thằng này thì chỉ gán chứ không Dim được, tức là chẳng hạn a = #dữ liệu ngày tháng#)

Còn Redim arr(1 to n) thì bản thân n cũng phải có giá trị, nếu không nó sẽ thành Redim arr(1 to 0) thế thì cũng lỗi thôi.

@kyo: thanks.
ơ vẫn không có ký hiệu cho boolean à?
về redim: n có thể là một biến nên có giá trị nào đó chứ không nhất định là 0 đâu, với những arr không rõ kích thước thì phải dùng redim [preserve]. khi khai báo dim thì n phải là một constant.
 
Upvote 0
Dù sao thì khai báo tường minh ra vẫn tốt hơn.

@kyo: với các thủ tục nhỏ thì như vậy, thử khai báo sub dưới đây một cách tường minh:

Private Sub listSticker(Sh As Object, strAddress$, strSticker$, lngME&, flagUpdate as Boolean, RS() As Object, arrayRS() As Object, arrQuery$(), ubQuery&, RSCodeVar As Object, arrayRSCodeVar() As Object, arrQueryCodeVar$(), ubQueryCodeVar&, RSCondition() As Object, RSConstrain() As Object, arrConstrain$(), ubConstrain&(), arrQueryConstrain$(), ubQueryConstrain&, Optional strCode$, Optional firstRow&, Optional lastRow&, Optional maxRowList&, Optional colOrder$, Optional varOption)

nó sẽ thế này:

Private Sub listSticker(Sh As Object, strAddress As String, strSticker As String, lngME As Long, flagUpdate as Boolean, RS() As Object, arrayRS() As Object, arrQuery() As String, ubQuery As Long, RSCodeVar As Object, arrayRSCodeVar() As Object, arrQueryCodeVar() As String, ubQueryCodeVar As Long, RSCondition() As Object, RSConstrain() As Object, arrConstrain() As String, ubConstrain() As Long, arrQueryConstrain() As String, ubQueryConstrain As Long, Optional strCode As String, Optional firstRow As Long, Optional lastRow As Long, Optional maxRowList As Long, Optional colOrder As Long, Optional varOption As Variant)

không biết kyo thế nào chứ tui thấy khiếp vía luôn. mấy cái object, boolean không có ký hiệu ngắn hơn thì đành chịu vậy thôi.
 
Lần chỉnh sửa cuối:
Upvote 0

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

Back
Top Bottom