我是excel vba的新手。我想编写一个宏,它可以将活动工作表的A列的文本值从第一行复制到最后一行,然后将其传递到同一个wordbook的另一张工作表。但复杂的部分是我必须根据B和C列活动表中给出的特定行和列号粘贴这些文本。
这是我在活动表格中的数据示例:
column A column B column C
text value row column
aaaa 1 1
aaaa 1 2
bbbb 1 3
bbbb 1 4
cccc 1 5
cccc 1 6
dddd 2 1
dddd 2 2
dddd 2 3
eeee 2 4
eeee 2 5
ffff 2 6
等等。
结果表应为:
column A column B column C column D column E column F .....
1 aaaa aaaa bbbb bbbb cccc cccc
2 dddd dddd dddd eeee eeee ffff
3
4
答案 0 :(得分:0)
这应该适合你。
Option Explicit
Sub copy_rng()
Dim wb As Workbook, ws1 As Worksheet, ws2 As Worksheet
Dim i As Integer
Dim lrow As Long
Dim myArray() As Variant
Set wb = ThisWorkbook
Set ws1 = wb.Sheets("Sheet1")
Set ws2 = wb.Sheets("Sheet2")
lrow = Cells(Rows.Count, 1).End(xlUp).Row
myArray() = ws1.Range(Cells(1, 1), Cells(lrow, 3)).Value
ws2.Activate
For i = 1 To UBound(myArray)
Cells(myArray(i, 2), myArray(i, 3)).Value2 = myArray(i, 1)
If myArray(i, 4) = 1 Then
Cells(myArray(i, 2), myArray(i, 3)).Interior.ThemeColor = xlThemeColorAccent1 'blue
ElseIf myArray(i, 4) = 2 Then
Cells(myArray(i, 2), myArray(i, 3)).Interior.ThemeColor = xlThemeColorAccent2 'red
ElseIf myArray(i, 4) = 3 Then
Cells(myArray(i, 2), myArray(i, 3)).Interior.ThemeColor = xlThemeColorAccent3 'green
ElseIf myArray(i, 4) = 4 Then
Cells(myArray(i, 2), myArray(i, 3)).Interior.ThemeColor = xlThemeColorAccent6 'orange
End If
Next i
End Sub
您可以使用工作表1中的数据创建一个数组,然后使用数组中的行号和列号将数据从A列复制到正确的单元格中。