多个单元格select并复制到另一个工作表上的单个行

过去几天我一直在寻找这个东西,似乎找不到任何东西来帮助我完成我正在尝试做的事情。

我有一个工作表,其中包含用户input的多个单元格中的数据 – 我想当用户点击提交button时,VBAmacros将从多个单元格中复制数据并将其粘贴到另一个工作表中的单个行上(last行),所以我可以稍后再提取数据,并根据需要进行更改。 工作表顶部有一个唯一的ID,当用这个ID查找时,我可以将数据拉回到工作表中,并对其进行编辑并再次保存。

当我录制一个macros,并尝试多select它不让我复制,但这是供select的代码

Sub Copy() ' ' Copy Macro ' Union(Range( _ "J22:K22,M22,I24:J24,K24:L24,M24,I26:J26,K26:L26,M26,B29:D29,E29:G29,B30:D30,B31:D31,B33:D33,E33:G33,I29,J29:K29,M29,I31:J31,K31:L31,M31,I33:J33,K33:L33,M33,B36:D36,B37:D37,B38:D38,E36:G36,B40:D40,E40:G40,I36,J36:K36,M36" _ ), Range( _ "I38:J38,K38:L38,M38,I40:J40,K40:L40,M40,B2:F3,B2:F3,B6:E6,F7:G7,B7:E7,B8:E8,B9:E9,B11:C11,D11:E11,B13:C13,D13:E13,I3:L3,L2,M1,I6:L6,I7:L7,I8:L8,I9:L9,M7,I11:J11,K11:L11,I13:J13,K13:L13,B15:M16,B18:M19,B22:D22" _ ), Range("B23:D23,B24:D24,E22:G22,B26:D26,E26:G26,I22")).Select End Sub 

这是我需要复制并粘贴到同一工作簿中的“条目”工作表的所有单元格。 我确信有人问过这个,但我不确定我没有使用正确的关键词search,但我没有find任何东西。 分配的东西复制多行和列粘贴,但没有多个单元格。

我认为这是你想要做的

 Sub test() Dim rng As Range Set rng = Union(Range( _ "J22:K22,M22,I24:J24,K24:L24,M24,I26:J26,K26:L26,M26,B29:D29,E29:G29,B30:D30,B31:D31,B33:D33,E33:G33,I29,J29:K29,M29,I31:J31,K31:L31,M31,I33:J33,K33:L33,M33,B36:D36,B37:D37,B38:D38,E36:G36,B40:D40,E40:G40,I36,J36:K36,M36" _ ), Range( _ "I38:J38,K38:L38,M38,I40:J40,K40:L40,M40,B2:F3,B2:F3,B6:E6,F7:G7,B7:E7,B8:E8,B9:E9,B11:C11,D11:E11,B13:C13,D13:E13,I3:L3,L2,M1,I6:L6,I7:L7,I8:L8,I9:L9,M7,I11:J11,K11:L11,I13:J13,K13:L13,B15:M16,B18:M19,B22:D22" _ ), Range("B23:D23,B24:D24,E22:G22,B26:D26,E26:G26,I22")) Dim WSEntries As Worksheet Set WSEntries = Sheets("Entries") Dim lastrow As Integer lastrow = WSEntries.Cells(Rows.Count, "A").End(xlUp).Row Dim i As Integer i = 1 For Each c In rng WSEntries.Cells(lastrow + 1, i) = c i = i + 1 Next End Sub 

它将从上到下循环遍历你的范围。

你确定要使用union kb吗? 由于函数的字符限制, 您可以将范围设置为我认为使用联合的所有单元格 。 你的意思是使用intersect kb ?


要清楚你在这里工作三个范围 –

 Range("J22:K22,M22,I24:J24,K24:L24,M24,I26:J26,K26:L26,M26,B29:D29,E29:G29,B30:D30,B31:D31,B33:D33,E33:G33,I29,J29:K29,M29,I31:J31,K31:L31,M31,I33:J33,K33:L33,M33,B36:D36,B37:D37,B38:D38,E36:G36,B40:D40,E40:G40,I36,J36:K36,M36") Range("I38:J38,K38:L38,M38,I40:J40,K40:L40,M40,B2:F3,B2:F3,B6:E6,F7:G7,B7:E7,B8:E8,B9:E9,B11:C11,D11:E11,B13:C13,D13:E13,I3:L3,L2,M1,I6:L6,I7:L7,I8:L8,I9:L9,M7,I11:J11,K11:L11,I13:J13,K13:L13,B15:M16,B18:M19,B22:D22") Range("B23:D23,B24:D24,E22:G22,B26:D26,E26:G26,I22") 

没有细胞相交所有三个范围。

B2:F3在第二个范围中被列出两次。 否则,我没有看到任何重叠。