我已经搜遍了所有内容,似乎无法正常工作。
我有2个工作表。
第1页包含测验问题编号,然后是每个对应q#的分数。
第二页包含每个q#作为列标题,我希望VBA代码从与正确标题对应的q#中获取分数。
例如:
第1张纸
Question# Score
1 100
2 90
3 75
4 95
第2张纸
Q1 Q2 Q3 Q4
100 90 75 95
可以将工作表2中的列标题更改为简单地说“ 1”,“ 2”等,如果这样可以更精确地匹配。
我找到并使用了这段代码,但是如果找到不起作用的匹配项,它将复制整列:
Sub CopyDataDynamically()
Dim lr As Long, num As Long
Dim rng As Range
lr = Cells(Rows.Count, 1).End(xlUp).Row
Set rng = Range("a2")
num = Range("b2").Value
If num = 1 Then
Range("B2:B" & lr).Copy
rng.Offset(0, num - 1).PasteSpecial xlPasteValues
End If
End Sub
谢谢!
答案 0 :(得分:0)
我总是觉得Dim
和Workbook
是Worksheet
的好习惯。如果您决定扩展,则已经设置好了。
无论有多少问题,以下代码本质上都会转置数据集。
Sub test()
Dim wbk As Workbook
Dim wks_1 As Worksheet
Dim wks_2 As Worksheet
Set wbk = ThisWorkbook
Set wks_1 = wbk.Sheets("Sheet1")
Set wks_2 = wbk.Sheets("Sheet2")
LastRow = wks_1.Range("A" & Rows.Count).End(xlUp).Row
For i = 1 To LastRow
wks_1.Cells(i, 1).Copy wks_2.Cells(1, i)
wks_1.Cells(i, 2).Copy wks_2.Cells(2, i)
Next i
End Sub
它也会复制标题。
首先,我想知道最后一行在哪里,因此想知道LastRow
代码。然后,我们只需遍历所有行并转置数据集即可。
在.Cells
行中的引用wks_1.Cells(i, 1).Copy wks_2.Cells(1, i)
总是先引用Row
,然后引用Col
。
让我知道你的生活。