将此粘贴到您的工作表代码中,例如 Sheet1(Sheet1),调整输入单元格和路径。
如果未更改,则通过更改单元格 A1 中的值进行测试。
包括一些替代方案,用于试验、添加和删除刻度(s)(')以进行修改。
解释行上的双勾('')(不是代码)不要弄乱这些..
当达到您的首选结果时,删除未使用的替代项(绿色)
Private Sub Worksheet_Change(ByVal Target As Range)
''-Select input cell here
If Not Intersect(Target, Range("A1")) Is Nothing Then
If Target.Value <> "" Then
''-Turns off visual updating
Application.ScreenUpdating = False
''-Returns value applied in input cell later used as row reference.
rwnum = Target.Value
Dim wb As Workbook
''Alt 1'For user selected workbook
'Dim dP As String
'dP = Environ$("USERPROFILE") & "\" & "Downloads": ChDrive "C:"
'ChDir dP
'Dim fNP As Variant
'fNP = Application.GetOpenFilename(FileFilter:="Excel Files (*.XLS), *.XLS", Title:="Select file")
'Set wb = Workbooks.Open(fNP)
''Alt 2'For static workbook name with static path
' Your path here '
Set wb = Workbooks.Open("C:\Users\Drew\Downloads\Weekly stats.xls")
''Alt 3'For static workbook name with semi dynamical path
'Set wb = Workbooks.Open(Environ$("USERPROFILE") & "\" & "Downloads\" & "Weekly stats.xls")
'C:\Users\UserName \ Downloads\ Weekly stats.xls
Dim rng As Range
Set rng = wb.ActiveSheet.Range("A1").CurrentRegion
''Alt 1'Static columns, select yours! 1=column A, 2=column B and so on..
c1 = 1: c2 = 2: c3 = 3: c4 = 4: c5 = 16
''Alt 2'Dynamic columns, if entire columns would move for some reason
'With rng
' c1 = WorksheetFunction.Match("Example header text 1", .Rows(1), 0)
' c2 = WorksheetFunction.Match("Example header text 2", .Rows(1), 0)
' c3 = WorksheetFunction.Match("Example header text 3", .Rows(1), 0)
' c4 = WorksheetFunction.Match("Example header text 4", .Rows(1), 0)
' c5 = WorksheetFunction.Match("Example header text 5", .Rows(1), 0)
'End With
Dim Mrng As Range
''-Where content is "pasted"
''Alt 1'Static destination
'Set Mrng = Me.Range("D2:S2")
''Alt 2'Same row as in closed workbook and columns 4 to 19(D:S)
'Set Mrng = Me.Cells(rwnum, 4).Resize(, 16)
''Alt 3'Next empty row in columns 4 to 19(D:S)
Set Mrng = Me.Range("D1048576").End(xlUp).Offset(1).Resize(, 16)
''-Adds the value to earlier selected columns in above selected row
With Mrng
.Cells(c1).Value = rng(rwnum, c1)
.Cells(c2).Value = rng(rwnum, c2)
.Cells(c3).Value = rng(rwnum, c3)
.Cells(c4).Value = rng(rwnum, c4)
.Cells(c5).Value = rng(rwnum, c5)
End With
''-Closes the "closed workbook" without saving any changes
wb.Close savechanges:=False
''-Returns selection to input cell for further testing
Target.Select
''-Turns on visual updating
Application.ScreenUpdating = True
End If
End If
End Sub