2017-08-08 79 views
0

我想在Excel中創建一個簡單的數據庫,並運行到VBA 255字符限制的錯誤。我已經創建了一些字符串變量來將正確的輸入單元映射到數據庫工作表中的相應列。不幸的是,我有一個很大的變數工作,所以總字符數超過255:VBA範圍255字符限制

myCopy = "D3,D5,D7,A14,B14,C14,D14,E14,G14,H14,I14,J14,K14,L14,M14,N14,O14,P14,R14,S14,T14,R15,S15,T15,R16,S16,T16,R17,S17,T17,U14,V14,W14,X14,Y14,U15,V15,W15,X15,Y15,U16,V16,W16,X16,Y16,U17,V17,W17,X17,Y17,Z14,AA14,AB14,AC14,Z15,AA15,AB15,AC15,Z16,AA16,AB16,AC16,Z17,AA17,AB17,AC17,A1,a1,a1,A1,a1,a1,A1,A1,A1,A1,A1,A1,A1,A1" 
myCopy2 = "D3,D5,D7,A18,B18,C18,D18,E18,G18,H18,I18,J18,K18,L18,M18,N18,O18,P18,R18,S18,T18,R19,S19,T19,R20,S20,T20,R21,S21,T21,U18,V18,W18,X18,Y18,U19,V19,W19,X19,Y19,U20,V20,W20,X20,Y20,U21,V21,W21,X21,Y21,Z18,AA18,AB18,AC18,Z19,AA19,AB19,AC19,Z20,AA20,AB20,AC20,Z21,AA21,AB21,AC21,A1,a1,a1,A1,a1,a1,A1,A1,A1,A1,A1,A1,A1,A1" 

當我嘗試提交數據,我得到一個「運行時錯誤‘1004’:方法'失敗」錯誤消息「object'_Worksheet的」範圍在下面的行:

With inputWks 
    Set myRng = .Range(myCopy) 
End With 

該數據庫編碼,使得完成的輸入表格提交時,每個單元將被輸入到下一列,每列是一個不同的變量(見下文)。因此,我無法刪除上面字符串中列出的任何單元格,也不會將數據輸入到正確的位置。

oCol = 3 
    For Each myCell In myRng.Cells 
     historyWks.Cells(nextRow, oCol).Value = myCell.Value 
     oCol = oCol + 1 
    Next myCell 

有沒有人知道如何繞過Range的255個字符限制?

+2

我停在「*我想在Excel中創建*一個簡單的數據庫」。 Excel不是數據庫,這不能很好地結束。這就是說'範圍'會拋出> 255個字符的錯誤,沒有辦法解決這個問題。你可以做的是在某些循環邏輯中'Union'範圍,假設你正在分組的單元格中有任何模式......這使得你的問題與鏈接到的一個@ YowE3K相同。 –

+1

爲什麼複製「A1,a1,a1,A1,a1,a1,A1,A1,A1,A1,A1,A1,A1,A1,A1」 –

回答

1

你可以試試這樣的事情...

myCopy = "D3,D5,D7,A14:E14,G14:P14,R14:T17,U14:Y17,Z14:AC17,A1" 

With inputWks 
    Set myRng = .Range(myCopy) 
End With 

For Each myCell In myRng 
    historyWks.Cells(nextRow, oCol).Value = myCell.Value 
    oCol = oCol + 1 
Next myCell 
+1

。去除字符串中的冗餘已經使它更清潔。 –