【问题标题】:Naming each column of a variable range based on data in one column根据一列中的数据命名变量范围的每一列
【发布时间】:2020-03-23 23:47:08
【问题描述】:

我试图用相同的基本标题命名每个列标题,但是更改一个单位的值,这个单位的所有数据都在 D 列中。我的 vba 技能非常基础。当我运行代码时,会出现标题,但实际值不会出现,并且每个标题之间都有一列的空格。我不知道为什么会这样

Private Sub Viscosity_Temperature()

    Dim dsvt As Worksheet
    Dim dst As Worksheet
    Dim sr As Range
    Dim t As Range
    Dim rng As Range
    Dim rn As Integer
    Dim rn2 As Integer
    Dim cl As String
    Dim i As Integer

    Set dst = Worksheets("Template 2 - Down Sweep")
    Sheets.Add.Name = "DownSweep ViscosityTemperature"
    Set dsvt = Worksheets("DownSweep ViscosityTemperature")

    dst.Range(dst.Range("H1"), dst.Range("H1").End(xlDown)).Copy
    dsvt.Range("D1").PasteSpecial Paste:=xlPasteValues
    dst.Range(dst.Range("D1"), dst.Range("D1").End(xlDown)).Copy
    dsvt.Range("A1").PasteSpecial Paste:=xlPasteValues
    dst.Range(dst.Range("C1"), dst.Range("C1").End(xlDown)).Copy
    dsvt.Range("B1").PasteSpecial Paste:=xlPasteValues
    dst.Range(dst.Range("F1"), dst.Range("F1").End(xlDown)).Copy
    dsvt.Range("C1").PasteSpecial Paste:=xlPasteValues

    Set rng = dsvt.Range(dsvt.Range("D1"), dsvt.Range("D1").End(xlDown))
    rn = rng.Rows.Count
    rn2 = rn + 6
    cl = Split(Cells(1, rn2).Address, "$")(1)

    Set sr = dsvt.Range(dsvt.Range("D2"), dsvt.Range("D2").End(xlDown))
    Set t = dsvt.Range("F1:" & cl & "1")
    i = 1

For i = 1 To rn
t(1, i).Value = "Viscosity at" & sr(i, 4) & "1/s"
i = i + 1
Next i

End Sub

任何帮助将不胜感激。

【问题讨论】:

    标签: excel vba range multiple-columns


    【解决方案1】:

    我发现了错误 - 在单个列中搜索值并在下一个时将 I 加 1。

    Private Sub Viscosity_Temperature()
    
        Dim dsvt As Worksheet
        Dim dst As Worksheet
        Dim sr As Range
        Dim t As Range
        Dim rng As Range
        Dim rn As Integer
        Dim rn2 As Integer
        Dim cl As String
        Dim i As Integer
    
        Set dst = Worksheets("Template 2 - Down Sweep")
        Sheets.Add.Name = "DownSweep ViscosityTemperature"
        Set dsvt = Worksheets("DownSweep ViscosityTemperature")
    
        dst.Range(dst.Range("H1"), dst.Range("H1").End(xlDown)).Copy
        dsvt.Range("D1").PasteSpecial Paste:=xlPasteValues
        dst.Range(dst.Range("D1"), dst.Range("D1").End(xlDown)).Copy
        dsvt.Range("A1").PasteSpecial Paste:=xlPasteValues
        dst.Range(dst.Range("C1"), dst.Range("C1").End(xlDown)).Copy
        dsvt.Range("B1").PasteSpecial Paste:=xlPasteValues
        dst.Range(dst.Range("F1"), dst.Range("F1").End(xlDown)).Copy
        dsvt.Range("C1").PasteSpecial Paste:=xlPasteValues
    
        Set rng = dsvt.Range(dsvt.Range("D1"), dsvt.Range("D1").End(xlDown))
        rn = rng.Rows.Count
        rn2 = rn + 6
        cl = Split(Cells(1, rn2).Address, "$")(1)
    
        Set sr = dsvt.Range(dsvt.Range("D2"), dsvt.Range("D2").End(xlDown))
        Set t = dsvt.Range("F1:" & cl & "1")
        i = 1
    
    For i = 1 To rn - 1
    t(1, i).Value = "Viscosity at " & sr(i, 1) & " 1/s"
    Next i
    
    End Sub
    
     1. List item
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-28
      • 2022-11-20
      • 2021-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-03
      • 1970-01-01
      相关资源
      最近更新 更多