VBA范围255个字符限制[重复]
Posted
技术标签:
【中文标题】VBA范围255个字符限制[重复]【英文标题】:VBA Range 255 Character Limit [duplicate] 【发布时间】:2018-01-15 11:08:22 【问题描述】:我正在尝试在 Excel 中创建一个简单的数据库,但遇到了 VBA 255 个字符限制的错误。我创建了几个作为字符串的变量,以将正确的输入单元格映射到数据库工作表中的相应列。不幸的是,我正在处理大量变量,因此总字符数超过 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':对象'_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 个字符限制吗?
【问题讨论】:
我停在“我正在尝试在 Excel 中创建一个简单的数据库”。 Excel 不是数据库,这不能很好地结束。这就是说Range
会抛出一个超过 255 个字符的错误,这是没有办法的。您可以做的是Union
某些循环逻辑中的范围,假设您要分组的单元格中有任何模式......这使您的问题与@YowE3K 链接的问题重复。
为什么重复“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
【讨论】:
是的。删除字符串中的冗余已经使它更干净了。以上是关于VBA范围255个字符限制[重复]的主要内容,如果未能解决你的问题,请参考以下文章
Excel VBA:将变体数组返回到选定范围时需要 255 转置字符限制的解决方法
以编程方式(VBA,C#)将数组字符串设置为范围时,奇怪的单元格中字符数限制