XL: H?n ch? đi qua m?ng đ? Excel s? d?ng t? đ?ng hóa

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 177991 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang này

TÓM T?T

Bài vi?t này th?o lu?n v? nh?ng gi?i h?n trong qua m?ng đ? Microsoft Excel b?ng và macro s? d?ng t? đ?ng hóa. N?u nh?ng h?n ch? đang vư?t quá, b?n có th? nh?n đư?c th?i gian ch?y l?i trong m? c?a b?n t? đ?ng hóa.

THÔNG TIN THÊM

Microsoft cung c?p l?p tr?nh ví d? đ? minh ho? ch?, không có b?o hành ho?c th? hi?n hay ng? ?, bao g?m nhưng không gi?i h?n, b?o đ?m ng? ? kh? năng bán hàng và/ho?c cho m?t m?c đích c? th?. Bài vi?t này gi? đ?nh r?ng b?n đ? quen thu?c v?i ngôn ng? l?p tr?nh đư?c ch?ng minh và các công c? đư?c s? d?ng đ? t?o ra và g? l?i th? t?c. Microsoft h? tr? các chuyên gia có th? giúp gi?i thích các ch?c năng c?a m?t th? t?c c? th?, nhưng h? s? không s?a đ?i các ví d? đ? cung c?p thêm ch?c năng ho?c xây d?ng quy tr?nh đ? đáp ?ng nhu c?u c? th? c?a b?n.
N?u b?n có h?n ch? kinh nghi?m l?p tr?nh, b?n có th? mu?n liên h? v?i m?t Microsoft Certified Partner ho?c d?ch v? tư v?n c?a Microsoft. Đ? bi?t thêm chi ti?t, truy c?p vào các trang Web Microsoft:

Microsoft Certified đ?i tác- https://Partner.Microsoft.com/Global/30000104

D?ch v? tư v?n c?a Microsoft- http://support.Microsoft.com/GP/advisoryservice

Đ? bi?t thêm v? các tùy ch?n h? tr? có s?n và v? làm th? nào đ? liên h? v?i Microsoft, ghé thăm Web site sau c?a Microsoft:http://support.Microsoft.com/Default.aspx?SCID=FH;EN-US;CNTACTMS Khi đi qua m?ng đ? s? d?ng Microsoft Excel T? đ?ng hóa, các gi?i h?n sau đây áp d?ng, tùy thu?c vào phiên b?n Excel và cho dù b?n đang đi xe đ?n m?t lo?t các b?ng tính ho?c như là đ?i s? đ? m?t v? mô. Xem cư?c chú thích h?p theo b?ng đ? bi?t chi ti?t.
   Version of          Passing Array to     Passing Array to
   Microsoft Excel     Worksheet Range      Macro (Procedure)
   ----------------------------------------------------------

   5.0                        A                B,C

   7.0 (Excel 95)             D                E,C,H

   8.0 (Excel 97)             F                G,H

   9.0 (Excel 2000)           F                G,H

				

Chú thích

A:

S? lư?ng t?i đa c?a các ph?n t? trong m?ng là kho?ng 6550. N?u b?n vư?t quá gi?i h?n này, b?n nh?n đư?c m?t ho?c c? hai c?a các thông báo l?i sau đây:
Thi?u b? nh?
1005: Không th? đ?t giá tr? tài s?n c?a l?p t?m
T?i đa s? lư?ng các ph?n t? trong m?ng đó b?n có th? vư?t qua đ? Excel s? d?ng Excel Transpose ch?c năng là 4095. N?u b?n vư?t quá gi?i h?n này, b?n nh?n đư?c dư?i đây thông báo l?i:
Th?i gian ch?y l?i '1004':
Transpose phương pháp ?ng d?ng l?p đ? th?t b?i
B:

S? lư?ng t?i đa y?u t? trong m?ng là 4095. N?u b?n vư?t quá gi?i h?n này, b?n có th? nh?n đư?c các thông báo l?i sau:
Th?i gian ch?y l?i '1004':
Ch?y phương pháp ?ng d?ng l?p đ? th?t b?i
Lưu ?: Khi đi qua m?t m?ng đa chi?u, b?n có th? không nh?n đư?c m?t thông báo l?i, nhưng Excel v? mô s? không ch?y khi t?ng s? thành ph?n vư?t quá 4095.

C:

Khi xác đ?nh tham s? m?ng trong Excel v? mô, nó ph?i đư?c đ?nh ngh?a như là m?t bi?n th? bi?n ho?c b?n s? nh?n đư?c thông báo l?i sau khi b?n c? g?ng ch?y v? mô b?ng cách s? d?ng t? đ?ng hóa:
Th?i gian ch?y l?i '1004':
Không th? t?m th?y v? mô<macro name=""><b00></b00></macro>
Cho Ví d?, gi? s? tên c?a b?n v? mô trong Excel là AcceptArray. Đây là m?t Ví d? v? cách các m?ng ph?i đư?c xác đ?nh trong Excel v? mô:
   Public Sub AcceptArray(ByVal myarray As Variant)
      ' You can pass the parameter either ByVal or ByRef.
      ' To determine the number of elements in the array, use
      ' the UBound function.
   End Sub
				
D:

S? thành ph?n trong m?ng, t?i đa là 5461. N?u b?n vư?t quá gi?i h?n này, b?n nh?n đư?c m?t trong các thông báo l?i sau đây:
Th?i gian ch?y l?i '1004':
Transpose phương pháp ?ng d?ng l?p đ? th?t b?i
- hay -
Th?i gian ch?y l?i '1005':
Không th? đ?t tài s?n giá tr? c?a giai c?p t?m
E:

T?i đa s? lư?ng các ph?n t? trong m?ng là 5461. N?u b?n vư?t quá gi?i h?n này, b?n nh?n đư?c thông báo l?i sau:
Th?i gian ch?y l?i '1004':
Ch?y phương pháp ?ng d?ng l?p đ? th?t b?i
F:

T?i đa s? lư?ng các ph?n t? trong m?ng b? h?n ch? b?i b? nh? có s?n ho?c Excel b?ng tính t?i đa kích thư?c (65536 hàng X 256 c?t). Tuy nhiên, s? lư?ng t?i đa y?u t? trong m?ng đó b?n có th? vư?t qua đ? Excel s? d?ng Excel Transpose ch?c năng là 5461. N?u b?n vư?t quá gi?i h?n này, b?n nh?n đư?c l?i sau tin nh?n:
Th?i gian ch?y l?i '13':
Lo?i Mismatch
G:

S? thành ph?n trong m?ng, t?i đa là gi?i h?n ch? b?i b? nh? s?n dùng. Ngoài ra, b?n không c?n ph?i xác đ?nh tham s? như m?t Bi?n th? bi?n trong Excel v? mô. Tuy nhiên, n?u b?n mu?n vư?t qua các m?ng ByVal, b?n ph?i xác đ?nh tham s? là m?t bi?n th?, như trong ví d? trong bi?n cư?c chú c trư?c đó trong bài vi?t này. B?n s? nh?n đư?c m?t th?i gian ch?y l?i 13, "ki?u Mismatch"l?i, n?u b?n không xác đ?nh các bi?n là m?t bi?n th?.

H:

Khi đi qua m?t đ?i s? ByRef đ?n m?t t? đ?ng hóa ra quá tr?nh h? ph?c v?, ch?ng h?n như Excel, marshalling c?a các d? li?u đư?c th?c hi?n gi?a t? đ?ng hóa b? đi?u khi?n (ho?c khách hàng) và h? ph?c v? k? t? khi h? ch?y vào các quá tr?nh riêng bi?t. Đi?u này có ngh?a là khi m?t m?ng đư?c thông qua đ? Excel s? d?ng ByRef, m?t b?n sao c?a các m?ng g?i đ?n đ?a ch? không gian c?a Excel. Sau khi th? t?c ch?y Excel, m?t b?n sao c?a các m?ng đư?c truy?n l?i cho khách hàng. M?c dù đi?u này không cho phép đi qua đ?i s? b?ng cách s? d?ng ByRef đ?n m?t máy ch? ra quá tr?nh, nó không ph?i là r?t hi?u qu?. Ngày m?t khác, khi s? d?ng m?t máy ch? trong quá tr?nh t? đ?ng hóa (năng đ?ng-k?t thư vi?n (DLL)) và b?n vư?t qua m?t đ?i s? ByRef, đi?u này là r?t hi?u qu? t? no Marshalling đư?c th?c hi?n. Các máy ch? đang s? d?ng cùng m?t m?ng trong b? nh? như các khách hàng. Đi?u này có th? v? các máy ch? ch?y trong không gian đ?a ch? tương t? như các khách hàng.

V? c?a marshalling v?i m?t máy ch? ra quá tr?nh như Excel, nó là hi?u qu? hơn đ? thông qua các m?ng ByVal thay v? c?a ByRef. B?ng cách này, ch? có m?t b?n sao đư?c thông qua đ? Excel và Excel không ph?i vư?t qua b?n sao l?i cho khách hàng. Đ? vư?t qua m?t m?ng ByVal cho m?t Excel v? mô, b?n ph?i xác đ?nh các tham s? trong Excel v? mô như là m?t bi?n th? bi?n. Xem cư?c chú c trư?c đó trong bài vi?t này cho m?t ví d?.

Th? t?c Visual Basic m?u

Sau đây m?u Microsoft Visual Basic cho các ?ng d?ng ph? th? t?c cho th?y làm th? nào đ? vư?t qua m?ng đ? Excel. L?n đ?u tiên hai th? t?c hi?n th? như th? nào đ? cư m?t lo?t các t? bào trên m?t b?ng tính b?ng cách đi qua m?t m?ng v?i m?t b?ng tính t?m ho?t đ?ng. Các th? t?c th? ba cho th?y làm th? nào đ? vư?t qua m?t m?ng v?i m?t Excel v? mô.

Khai báo sau đây đư?c s? d?ng v?i m?i ví d?:
L?a ch?n r? ràng
Tư nhân xlApp như đ?i tư?ng
Tư nhân xlBook như đ?i tư?ng
Tư nhân xlSheet như đ?i tư?ng
Đi qua m?t m?ng 1-chi?u đ?n m?t lo?t các b?ng tính:
   Public Sub OneDimension()
      Const size = 5461
      Dim myarray(1 To size) As Integer
      Set xlApp = CreateObject("Excel.Application")
      xlApp.Visible = True
      Set xlBook = xlApp.Workbooks.Add
      Set xlSheet = xlBook.Worksheets("Sheet1")
      xlSheet.Cells(1, 1).Resize(size, 1).Value = _
         xlApp.Application.Transpose(myarray)
   End Sub
				
Đi qua m?t m?ng 2 chi?u v?i m?t lo?t các b?ng tính:
   Public Sub TwoDimension()
      Const size = 2730
      Dim myarray(1 To size, 1 To 2) As Integer
      ' Number of elements = 2730 * 2 = 5460.
      Set xlApp = CreateObject("Excel.Application")
      xlApp.Visible = True
      Set xlBook = xlApp.Workbooks.Add
      Set xlSheet = xlBook.Worksheets("Sheet1")
      xlSheet.Cells(1, 1).Resize(size, 2).Value = myarray
   End Sub
				
Đi qua m?t m?ng như là đ?i s? cho m?t Excel v? mô:
   Public Sub RunExcelMacro()
      Const size = 5461
      Dim myarray(1 To size) As Integer
      Set xlApp = CreateObject("Excel.Application")
      xlApp.Visible = True
      Set xlBook = xlApp.Workbooks.Open("C:\MyBook.xls")
      xlApp.Run "AcceptArray", myarray
   End Sub
				
Th? t?c AcceptArray trong m?t mô-đun bên trong C:\MyBook.xls tương t? như dư?i đây:
   Option Explicit

   Public Sub AcceptArray(ByVal myarray As Variant)
      MsgBox "Size of first dimension: " & UBound(myarray, 1)
   End Sub
				

THAM KH?O

Đ? bi?t thêm chi ti?t v? m?ng và Excel, xin vui l?ng xem các bài vi?t sau trong cơ s? ki?n th?c Microsoft:
166342 XL97: T?i đa kích thư?c m?ng trong Microsoft Excel 97

153307 HOWTO: Cu?c g?i Microsoft Excel macro đó đưa các thông s?

153090 Làm th? nào đ? vư?t qua m?t m?ng Visual Basic cho m?t b?ng tính Excel
Cho bi?t thêm thông tin v? vi?c nh?n tr? giúp v?i Visual Basic cho Các ?ng d?ng, xin vui l?ng xem bài vi?t sau trong cơ s? ki?n th?c Microsoft:
163435 VBA: L?p tr?nh tài nguyên cho Visual Basic cho các ?ng d?ng

Thu?c tính

ID c?a bài: 177991 - L?n xem xét sau cùng: 18 Tháng Chín 2011 - Xem xét l?i: 3.0
Áp d?ng
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft Excel 95 Standard Edition
  • Microsoft Office 2000 Developer Edition
T? khóa: 
kbautomation kbinfo kbmt KB177991 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:177991

Cung cấp Phản hồi

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com