Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2067|回复: 6

[已解决]单元格内的字符数超过256个程序出错

[复制链接]
发表于 2016-9-20 17:05 | 显示全部楼层 |阅读模式
本帖最后由 gylilan 于 2016-9-23 11:46 编辑

代码如下,很简单,但当引用区域内任一单元格内字符数超过256个,程序就出错。可下载附件进行测试。详细问题在附件中,请教各位老师是否有解决的方法。谢谢。
Sub test()
arr = Sheets("sheet1").Range("a1").CurrentRegion
Sheets("sheet1").Range("G1").Resize(UBound(arr), 1) = Application.Index(arr, , 1)
End Sub
附件.zip (19.73 KB, 下载次数: 7)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2016-9-20 17:17 | 显示全部楼层
好像是有这个限制吧,没什么好办法。
回复

使用道具 举报

发表于 2016-9-20 20:03 | 显示全部楼层
用笨办法:
Sub test()
    arr = Sheets("sheet1").Range("a1").CurrentRegion
    a = UBound(arr)
    arr1 = Sheets("sheet1").Range("a1:a" & a)
    Sheets("sheet1").Range("G1").Resize(a, 1) = arr1
End Sub
回复

使用道具 举报

 楼主| 发表于 2016-9-21 10:18 | 显示全部楼层
wanao2008 发表于 2016-9-20 20:03
用笨办法:
Sub test()
    arr = Sheets("sheet1").Range("a1").CurrentRegion

老师您好,因为数据列比较多,用您提供的办法的话,针对每一列都要写一行代码,一个是代码量太大,一个是不太灵活,后期维护也挺麻烦的。不知道还有没有更好的办法?谢谢老师。
回复

使用道具 举报

发表于 2016-9-21 10:35 | 显示全部楼层
用代码循环来跑,试试,参考下面的代码
  1. Option Explicit

  2. Sub test()
  3.     Dim arr
  4.     Dim irow%
  5.     arr = Range("a1").CurrentRegion.Value
  6.     For irow = 1 To UBound(arr)
  7.         Cells(irow, "g") = arr(irow, 2)
  8.     Next
  9. End Sub
复制代码
回复

使用道具 举报

发表于 2016-9-21 11:11 | 显示全部楼层    本楼为最佳答案   
vba本身是没有这样限制的,
楼主代码出错原因是使用了非vba方法调用了excel函数index所致,
在vba中一般是尽量避免这样使用的,
因为这样做看似代码简洁了,但运行效率并不高。

3楼和5楼两位老师使用的都是纯vba方法,
效率要比楼主的方法高很多,
因此更不会出现楼主代码的错误提示。

如果数据量大而且很多列需要分别复制其他列,
可使用子过程方法提高代码的可读性。

比如:
  1. Sub test()
  2.     Inde 1, 7      'A列复制到G列
  3.     Inde "B", "I"  'B列复制到I列
  4. End Sub
  5. Sub Inde(x, y)
  6.     Dim e&, arr
  7.     e = Cells(65536, x).End(3).Row
  8.     arr = Range(Cells(1, x), Cells(e, x))
  9.     Cells(1, y).Resize(e) = arr
  10. End Sub
复制代码

评分

参与人数 1 +6 收起 理由
today0427 + 6 学习了!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2016-9-23 11:51 | 显示全部楼层
雪舞子 发表于 2016-9-21 11:11
vba本身是没有这样限制的,
楼主代码出错原因是使用了非vba方法调用了excel函数index所致,
在vba中一般 ...

Perfect。老师的代码不仅解决了我的问题,而且代码直观,简洁,且便于后期维护,太完美了,非常感谢。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-19 01:04 , Processed in 0.471761 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表