首页 文章

宏/代码,用于根据条件复制和转置粘贴

提问于
浏览
0

今天是个好日子 .

我正面临着一个路障,目前我正在为一项任务创建一个excel文件 .

在我的文件中,我需要将工作表'Input'中的单元格 C6:C13 转置粘贴到 Database 工作表行 C8:J8 or C9:J9 or C10:J10 等基于:'Input'工作表中单元格 C5 的内容应与B列中的一行相匹配 .

你可以在这里找到这个文件:http://tinyurl.com/oz7w97g

提前致谢!!!

编辑2:我现在的问题是,它是在“数据库”表中选择的任何单元格中粘贴数据 . 例如,如果选择了J13,它将自动将数据粘贴到J13:Q13中,而不搜索正确的单元格 .

编辑3:我想通了,将'As String'改为'As Date'并且它有效 . 为了提高效率,有没有办法可以减少这段代码的长度,因为请记住它需要引用72个不同的行,所以我需要输入'If'和'ElseIf'72次 .

Sub Code1()

Dim strCriteria As Date

strCriteria = Cells(5, "C").Value

Range("C6:C13").Select
Selection.Copy
Sheets("Database").Select

If strCriteria = "01-01-2015" Then
    Range("C7").Select
ElseIf strCriteria = "01-01-2016" Then
    Range("C8").Select
ElseIf strCriteria = "01-01-2017" Then
    Range("C9").Select
End If



Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=True
Sheets("Input").Select
Range("D13").Select
Application.CutCopyMode = False
Range("C13").Select

结束子

1 回答

  • 0

    好 . 我看到你的变化 . 您可以做的一件事是根据单元格C5的criteia查找目标单元格 . 我在单元格C4中创建了一个VLOOKUP,它将根据单元格C5中的日期查找目标 .

    enter image description here

    单元格C4中的公式为: =VLOOKUP(C5,F5:G7,2,FALSE) . 该表在单元格F5中为1/1/2015,在单元格G5中为"C7" . 其他日期和单元格将紧跟在其下方 .

    如果需要,可以在另一个工作表上创建查找表 .

    这是新代码,然后使用单元格C4中的查找值:

    Sub Code1()
    
        Dim strCell As String
    
        strCell = Cells(4, "C").Value
    
        Range("C6:C13").Select
        Selection.Copy
        Sheets("Database").Select
    
        Range(strCell).Select
    
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=True
        Sheets("Input").Select
        Range("D13").Select
        Application.CutCopyMode = False
        Range("C13").Select
    
    End Sub
    

相关问题