我正在使用 VBA 代码复制粘贴 (Application.Transpose
) 一些信息从表 2 到表 1。代码运行良好,但是,我有几个超过 255 个字符的单元格。
我遇到了这些单元格的错误(错误 13:类型不匹配)。我认为这是因为单元格包含超过 255 个字符。
下面,我正在使用的代码:
Sub Bouton3_Cliquer()
Dim O1 As Worksheet 'déclare la variable O1 (Onglet 1)
Dim O2 As Worksheet 'déclare la variable O2 (Onglet 2)
Dim TC As Variant 'déclare la variable TC (Tableau de Cellules)
Dim D As Object 'déclare la variable D (Dictionnaire)
Dim I As Integer 'déclare la variable I (Incrément)
Dim TMP As Variant 'déclare la variable TMP (tableau TeMPoraire)
Dim TL() As Variant 'déclare la variable TL (Tableau de Lignes)
Dim K As Integer 'déclare la variable K (incrément)
Dim PL As Integer 'déclare la variable PL (Première Ligne)
Dim J As Integer 'déclare la variable J (incrément)
Dim L As Byte 'déclare la variable L (incrément)
Set O1 = Sheets("Feuil1")
Set O2 = Sheets("evaluations")
TC = O1.Range("B1").CurrentRegion
Set D = CreateObject("Scripting.Dictionary")
For I = 4 To UBound(TC, 1)
D(TC(I, 1)) = ""
Next I
TMP = D.keys
TC = O2.Range("A1").CurrentRegion
For I = 0 To UBound(TMP, 1)
Erase TL 'efface le tableau TL
K = 1 'initialise la variable K
PL = O1.Columns(2).Find(TMP(I), O1.Range("B3"), xlValues, xlWhole).Row
For J = 2 To UBound(TC, 1)
If TC(J, 1) = TMP(I) Then
ReDim Preserve TL(1 To UBound(TC, 2) - 1, 1 To K)
For L = 1 To UBound(TC, 2) - 1
TL(L, K) = TC(J, L + 1)
Next L
K = K + 1 '
End If 'fin de la condition
Next J
If K > 1 Then O1.Cells(PL, 16).Resize(UBound(TL, 2), UBound(TL, 1)).Value = Application.Transpose(TL)
Next I '
End Sub
和有问题的线:
If K > 1 Then
O1.Cells(PL, 16).Resize(UBound(TL, 2), _
UBound(TL, 1)).Value = Application.Transpose(TL)
你知道我该如何解决这个问题吗?
最佳答案
改变你的单行语句
If K > 1 Then O1.Cells(PL, 16).Resize(UBound(TL, 2), UBound(TL, 1)).Value = Application.Transpose(TL)
到这个多行并将 T_TL 也声明为变体
If k > 1 Then
T_TL = Application.Transpose(TL)
O1.Cells(PL, 16).Resize(UBound(TL, 2), UBound(TL, 1)).Value = T_TL
End If
有了这个,你会看到它是转置还是分配部分不起作用!
关于vba - 如何在 Excel 的单元格中处理超过 255 个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30169831/