Excel 如何根据活动工作表中的特定行号和列号,将文本从活动工作表的列复制到另一个工作表
我是excel vba新手。我想写一个宏,它可以将活动工作表a列的文本值从第一行复制到最后一行,再经过它复制到同一wordbook的另一个工作表。但复杂的部分是,我必须根据B列和C列活动表中给出的特定行和列编号粘贴这些文本 这是我在活动工作表中的数据示例:Excel 如何根据活动工作表中的特定行号和列号,将文本从活动工作表的列复制到另一个工作表,excel,vba,macos,Excel,Vba,Macos,我是excel vba新手。我想写一个宏,它可以将活动工作表a列的文本值从第一行复制到最后一行,再经过它复制到同一wordbook的另一个工作表。但复杂的部分是,我必须根据B列和C列活动表中给出的特定行和列编号粘贴这些文本 这是我在活动工作表中的数据示例: column A column B column C text value row column aaaa 1 1
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
这应该对你有用
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列中的数据复制到正确的单元格中。这是有效的。非常感谢。我还有一个问题。如果工作表1中A列中文本的D列中有值。根据该值,我想将颜色从白色指定为红色(0到更高),然后将其作为单元格背景(sheet2),并根据行和列指定文本。你能帮我吗?很好用。非常感谢。我还有一个问题。如果在表格1的a栏中文本的D栏中有值。根据该值,我想将颜色从白色指定为红色(0到更高),然后将其作为单元格背景(sheet2),并根据行和列指定文本。你能帮帮我吗@vockzI已经修改了我原来的答案,加入了改变电池颜色的内容。除了像我一样使用If语句之外,我不知道你会怎么做,也许还有一种更有效的方法。您必须找出要使用“xlThemeColorAccent”编号的颜色。希望对你有用。