代码之家  ›  专栏  ›  技术社区  ›  Shiela

提交模块将条目从一张表保存到另一张表

  •  0
  • Shiela  · 技术社区  · 2 年前

    我这里有两张床单。

    第1页是我放置日期、时间、门票、分数和是/否/NA答案的地方。 我有一个Submit按钮,它调用一个模块来保存从第1页到第2页的内容,但只保存Date to Score。我对是/否/NA的回答有问题。我想从第1页到第2页保存这些值1次,但我得到了 应用程序定义错误 。请参见下文。

    第1页 enter image description here

    第2页 enter image description here

    单元

    Option Explicit
    Function saveTo()
        Dim sh, sh2 As Worksheet
        Set sh = ThisWorkbook.Sheets("Page2")
        Set sh2 = ThisWorkbook.Sheets("Page1")
        Dim n As Long
        n = sh.Range("A" & Application.Rows.Count).End(xlUp).Row
        
        sh.Range("A" & n + 1).Value = sh2.Range("E3")
        sh.Range("B" & n + 1).Value = sh2.Range("E4")
        sh.Range("C" & n + 1).Value = sh2.Range("E5")
        sh.Range("D" & n + 1).Value = sh2.Range("J3")
        sh.Range("$E:$BC" & n + 1).Value = sh2.Range("$E$7:$E$57")
    End Function
    

    错误

    enter image description here

    是否有代码可以实现从第1页到第2页的上述是/否/NA答案的一次性保存?我感谢你的帮助。

    1 回复  |  直到 2 年前
        1
  •  1
  •   Black cat    2 年前

    将出现错误的行替换为:

    sh.Range("$E" & n+1 & ":$BC" & n + 1).Value = worksheetfunction.Transpose(sh2.Range("$E$7:$E$57").Value)
    

    右侧的范围仅在范围为一个单元格时返回值。具有多个单元格的范围需要 Value 所有物

    Transpose 需要调整 Row to Row 引用。否则,如果将一行的范围设置为一列的范围,则会在整行中重复该列中的第一个值。

    推荐文章