设为首页收藏本站

嘻皮客娱乐学习网

 找回密码
 中文注册
搜索
打印 上一主题 下一主题
开启左侧

[OFFICE] Application.transpose()提示类型不匹配的原因

[复制链接]
跳转到指定楼层
楼主
发表于 2017-2-9 14:01:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Application.transpose()行列转置函数,对转置时每个单元格内可容纳的字符长度有限制要求。

即每个单元格内的字符数不得大于255个字符。

如果有单元格内的字符数大于255了,会提示运行时错误13,类型不匹配。

遇到这种情况,可以用一维单行数组转二维单列数组的方法做变通。类似下面的例子。

  1. Sub PreSort3()
  2.         arr = Sheet1.[a1].CurrentRegion
  3.    
  4.         Set d = CreateObject("Scripting.Dictionary")
  5.         For i = 2 To UBound(arr)
  6.             If d.Exists(arr(i, 2)) Then
  7.                 d(arr(i, 2)) = d(arr(i, 2)) & "," & arr(i, 1)
  8.             Else
  9.                 d(arr(i, 2)) = arr(i, 1)
  10.             End If
  11.         Next
  12.         
  13.         p = d.keys
  14.         q = d.items
  15.         
  16.         ReDim brr(d.Count, 1)
  17.         brr(0, 0) = "Number"
  18.         brr(0, 1) = "Name"
  19.         
  20.         For i = 1 To d.Count
  21.             brr(i, 0) = p(i - 1)
  22.             brr(i, 1) = q(i - 1)
  23.         Next
  24.         
  25.         Sheet2.[a1].CurrentRegion = ""
  26.         Sheet2.[a1].Resize(d.Count + 1, 2) = brr
  27.    
  28. End Sub
复制代码
回复

使用道具 举报

小黑屋|手机版|嘻皮客网 ( 京ICP备10218169号|京公网安备11010802013797  

GMT+8, 2024-5-5 03:57 , Processed in 0.177584 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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