vba - 如何在 Excel 的单元格中处理超过 255 个字符?

标签 vba excel

我正在使用 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/

相关文章:

c# - NPOI 真实世界枢轴示例

Excel:带百分比的 SUMPRODUCT

vba - Excel VBA 用于在 Word 中创建编号列表

excel - 从另一个工作簿运行宏

excel - 不使用循环操作数组

.net - 通过 COM 从 Excel 调用的 .NET 自动化服务器的生命周期

vba - Excel 中的 RAND() 函数用于蒙特卡罗模拟有多好?

excel - 我想在 Excel 中的这些数据中找到相同的值,我该怎么做?

vba - 创建工作簿中所有工作表名称的列表

c# - GetActiveObject() 与 GetObject() - MK_E_UNAVAILABLE 错误