满足条件时,将仅行的一部分复制粘贴到另一张纸上,其中一个单元格包含图片

时间:2019-03-01 07:58:26

标签: excel vba image row copy-paste

我有一个名为Data的工作表,其中我在行中列出了产品。每个产品的信息都在A:W列中。 A列用于公司ID。 根据下拉列表中选择的ID,我希望将单元格P:W粘贴到名为Quote的工作表中,该工作表从A:H列的第11行开始。必须注意,工作表数据中的W列用于图片。

我在Web上找到了一些代码,并试图使其适应我的情况,但没有成功。首先,我无法复制粘贴图片。我假设我应该使用Range.Copy方法而不是PasteSpecial方法,但是我无法使其在我的代码中起作用。其次,我找不到仅复制和粘贴P:W列中的单元格的正确方法。

Sub Quote()

Dim Data As Worksheet
Dim Quote As Worksheet
Dim CompanyID As String
Dim Finalrow As Integer
Dim i As Integer

Set Data = Sheet3
Set Quote = Sheet2
CompanyID = Sheet6.Range("E5").Value

Data.Select
Finalrow = Cells(Rows.Count, 1).End(xlUp).Row

For i = 2 To Finalrow
    If Cells(i, 1) = CompanyID Then
    Range(Cells(i, 1), Cells(i, 23)).Copy
    Quote.Select
    Rows(11).Select
    Range("A200").End(xlUp).Offset(1, 0).PasteSpecial xlPasteAll
    Data.Select
    End If

Next i

Quote.Select
Range("A11:O200").Delete
Range("A1").Select

End Sub

1 个答案:

答案 0 :(得分:0)

尝试

tab22m <- read.table(text =
    "   stazione         variable value
1         c perc_dati_validi   100
2         i perc_dati_validi   100
3         c              min     6
4         i              min     6
5         c              max    75
6         i              max   105
7         c            media    25
8         i            media    39
9         c               50    24
10        i               50    39
11        c               90    42
12        i               90    60
13        c               95    47
14        i               95    68
15        c               98    53
16        i               98    77", header = T)

您可以删除代码中的所有Data.Range(Cells(i, 16), Cells(i, 23)).Copy Quote.Range("A200").End(xlUp).Offset(1, 0).resize(1,8) 行。在Excel自动化中,几乎不需要.Select。 另外,您已经参考了工作表。如果您使用这些参考来确定范围,则不必翻页。