我有一张excel表,如下所示:" Sheet1" &安培; " Sheet2的"我希望结果如" Sheet3"。
所示最终我想把一个" Button"在单独的工作表(控制面板)中,当点击它时,我需要组合来自" Sheet1"和" Sheet2"具有转置效果,如" Sheet3"。
如何使用宏自动执行此操作,因为有~2000"行"在工作表1和工作表2中的~1000。我是宏的新手,所以希望我可以自动化,否则我会手动复制和粘贴所有这些。
谢谢!
答案 0 :(得分:0)
使用返回工作表最后一行的函数可能会有所帮助:
Public Function funcLastRow(shtTarget As Worksheet, Optional iColLimit As Integer = -1) As Long
If iColLimit = -1 Then
iColLimit = 256
End If
Dim rowMaxIndex As Long
rowMaxIndex = 0
Dim ctrCols As Integer
For ctrCols = 1 To iColLimit
If shtTarget.Cells(1048576, ctrCols).End(xlUp).Row > rowMaxIndex Then
rowMaxIndex = shtTarget.Cells(1048576, ctrCols).End(xlUp).Row
End If
Next ctrCols
funcLastRow = rowMaxIndex
End Function
您可以像这样使用它:
Dim lLastRow As Long
lLastRow = funcLastRow(Sheets(1))
如果有效,请告诉我们
答案 1 :(得分:0)
以下是所有公式解决方案(无宏)
数据在Sheet1 A到I和Sheet2 A到G
中我假设你只有6个部门。虽然如果你有额外的,公式需要很少或可能没有修改。
在表3中
重复六次用户ID
A2 = INDEX(Sheet1!A:A,1+QUOTIENT(ROW()-ROW($A$2)+6,6))
获取姓名,性别&国家
B2 = VLOOKUP($A2,Sheet1!$A$2:$I$3000,COLUMNS($A$1:B$1),FALSE)
C2 = VLOOKUP($A2,Sheet1!$A$2:$I$3000,COLUMNS($A$1:C$1),FALSE)
D2 = VLOOKUP($A2,Sheet1!$A$2:$I$3000,COLUMNS($A$1:D$1),FALSE)
获取部门访问权限。如果结果单元格为空白,"" & ...
将避免为0.
E2 = "" & IF(SUMPRODUCT(--(Sheet1!$A$1:$I$1=F2))>0,HLOOKUP(F2,Sheet1!$A$1:$I$3000,MATCH(A2,Sheet1!$A$1:$A$3000,0),FALSE),HLOOKUP(F2,Sheet2!$A$1:$G$3000,MATCH(A2,Sheet2!$A$1:$A$3000,0),FALSE
))
F2:F7
部门是手动输入的(没有公式)。 F8
与F2
相关联,以便在向下拖动时重复展示
G2 = "" & IF(SUMPRODUCT(--(Sheet1!$A$1:$I$1=F2))>0,INDEX(Sheet1!$I$1:$I$3000,MATCH(A2,Sheet1!$A$1:$A$3000,0)),INDEX(Sheet2!$G$1:$G$3000,MATCH(A2,Sheet1!$A$1:$A$3000,0)))
如果您需要,我可以准备谷歌表进行演示。欢呼声。
答案 2 :(得分:0)
此代码适用于Transpose和大数据的连接。
from unittest.mock import patch
from app import app
def test_index():
with patch("app.session", dict()) as session:
client = app.test_client()
response = client.post("/", data={
"username": "test"
})
assert session.get("username") == "test"
assert response.data == b"Username saved in session"