【问题标题】:Advance to next Column前进到下一列
【发布时间】:2022-08-02 18:13:05
【问题描述】:

我正在使用以下代码编辑 Excel 文件中的一些数据

Dim SF1 As Long
Dim EF1 As Long
Dim MaxRows As Long
SF1 = 2
MaxRows = Range(\"A1\").End(xlDown).Row
EF1 = MaxRows

While SF1 <= MaxRows
If Range(\"D\" & SF1) <> \"\" Then
    Range(\"A\" & EF1).Value = Range(\"A\" & SF1).Value
    Range(\"B\" & EF1).Value = Range(\"B\" & SF1).Value
    Range(\"C\" & EF1).Value = Range(\"D\" & SF1).Value
    SF1 = SF1 + 1
    EF1 = EF1 + 1
Else
    SF1 = SF1 + 1
End If
Wend
End Sub   

但是,我想在达到 MaxRows 后将 D 列增加到 E 到...(理想情况下)ZZ 。你能给我提供任何意见吗?

我试过这样的事情:

Dim SF1 As Long
Dim EF1 As Long
Dim MaxRows as Long
Column As String
SF1=2
MaxRows = Range(\"A1\").End(xlDown).Row
EF1 = MaxRows
Col = \"D\"

While Col <>\"ZZ\"
    While SF1 <= MaxRows
        If Range(\"D\" & SF1) <> \"\" Then
            Range(\"A\" & EF1).Value = Range(\"A\" & SF1).Value
            Range(\"B\" & EF1).Value = Range(\"B\" & SF1).Value
            Range(\"C\" & EF1).Value = Range(\"D\" & SF1).Value
            SF1 = SF1 + 1
            EF1 = EF1 + 1
        Else
            SF1 = SF1 + 1
        End If
    Wend
    Col = Col+1
Wend
End Sub 

这不起作用,因为它不兼容(字符串和+1,因为这是一个数字)。那么我如何在此处推进列,特别是考虑到 Z AA 之后跟随在 Excels 列名中。

感谢您的帮助和最好的问候!

    标签: excel vba


    【解决方案1】:

    找到解决方案 代码现在如下所示:

    Dim SF1 As Long
    Dim EF1 As Long
    Dim MaxRows As Long
    Dim ColNumber As Long
    Dim ColLetter As String
    Dim FinalColLetter As String
    FinalColLetter = "BB"
    ColNumber = 4
    SF1 = 2
    MaxRows = Range("A1").End(xlDown).Row
    EF1 = MaxRows + 1
    
    While ColNumber <= Range(FinalColLetter & 1).Column
        ColLetter = Split(Cells(1, ColNumber).Address, "$")(1)
            While SF1 <= MaxRows
                If Range(ColLetter & SF1) <> "" Then
                    Range("A" & EF1).Value = Range("A" & SF1).Value
                    Range("B" & EF1).Value = Range("B" & SF1).Value
                    Range("C" & EF1).Value = Range(ColLetter & SF1).Value
                    SF1 = SF1 + 1
                    EF1 = EF1 + 1
                Else
                    SF1 = SF1 + 1
            End If
            Wend
            SF1 = 2
        ColNumber = ColNumber + 1
    Wend
    

    做我需要的

    【讨论】:

      猜你喜欢
      • 2011-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多