创建 Public 个变量,其中包含来自 WorkSheet 的数据
Create Public Variable containing data from WorkSheet
简化Excel代码:
Public MyFile As String
Public varSheetA As Variant
Public SelRangeA As Range
Public wsCopy As Excel.Worksheet
Sub SelectFile_Click()
MyFile = Application.GetOpenFilename() 'Aquire filepath from user
If (MyFile <> "False") Then
Range("B1").Value = "File Found"
End If
End Sub
Sub LoadFile_Click()
Dim WbOne As Workbook
Dim strRangeToCheck As String
strRangeToCheck = "A1:T2000"
Set WbOne = Workbooks.Open(MyFile) 'Open that file
Set wsCopy = WbOne.Worksheets(1) 'Try to copy
Set varSheetA = wsCopy.Range(strRangeToCheck) 'Try to copy
Set SelRangeA = wsCopy.Range(strRangeToCheck) 'Try to copy
WbOne.Close 'This is where we lose the references & values
End Sub
Sub DisplayFile_Click()
Range("A4").Value = varSheetA(1, 1)
End Sub
该程序的最终结果是将 WorkSheet(1) 中的值放入范围或变体数组中,以便我可以根据需要编辑和显示它们,并最终将这些值复制回原始文件。但是,当我 运行 这段代码时,当 LoadFile_Click
退出时,我初始化的所有 Public 变量都是空的(更具体地说,当 WbOne
关闭时。
以前我的代码看起来像 varSheetA = WbOne.Worksheet(1).Range(strRangeToCheck)
虽然我目前正在测试不同的方法,因为那种方法似乎不起作用。
有人发现我正在尝试做的事情有任何根本问题吗?谢谢!
Option Explicit
Public MyFile As String
Public varSheetA As Variant
Sub SelectFile_Click()
MyFile = Application.GetOpenFilename() 'Aquire filepath from user
If (MyFile <> "False") Then
Range("B1").Value = "File Found"
End If
End Sub
Sub LoadFile_Click()
Const strRangeToCheck As String = "A1:T2000"
With Workbooks.Open(MyFile)
varSheetA = .Worksheets(1).Range(strRangeToCheck).Value
.Close False
End With
End Sub
Sub DisplayFile_Click()
Range("A4").Value = varSheetA(1, 1)
End Sub
简化Excel代码:
Public MyFile As String
Public varSheetA As Variant
Public SelRangeA As Range
Public wsCopy As Excel.Worksheet
Sub SelectFile_Click()
MyFile = Application.GetOpenFilename() 'Aquire filepath from user
If (MyFile <> "False") Then
Range("B1").Value = "File Found"
End If
End Sub
Sub LoadFile_Click()
Dim WbOne As Workbook
Dim strRangeToCheck As String
strRangeToCheck = "A1:T2000"
Set WbOne = Workbooks.Open(MyFile) 'Open that file
Set wsCopy = WbOne.Worksheets(1) 'Try to copy
Set varSheetA = wsCopy.Range(strRangeToCheck) 'Try to copy
Set SelRangeA = wsCopy.Range(strRangeToCheck) 'Try to copy
WbOne.Close 'This is where we lose the references & values
End Sub
Sub DisplayFile_Click()
Range("A4").Value = varSheetA(1, 1)
End Sub
该程序的最终结果是将 WorkSheet(1) 中的值放入范围或变体数组中,以便我可以根据需要编辑和显示它们,并最终将这些值复制回原始文件。但是,当我 运行 这段代码时,当 LoadFile_Click
退出时,我初始化的所有 Public 变量都是空的(更具体地说,当 WbOne
关闭时。
以前我的代码看起来像 varSheetA = WbOne.Worksheet(1).Range(strRangeToCheck)
虽然我目前正在测试不同的方法,因为那种方法似乎不起作用。
有人发现我正在尝试做的事情有任何根本问题吗?谢谢!
Option Explicit
Public MyFile As String
Public varSheetA As Variant
Sub SelectFile_Click()
MyFile = Application.GetOpenFilename() 'Aquire filepath from user
If (MyFile <> "False") Then
Range("B1").Value = "File Found"
End If
End Sub
Sub LoadFile_Click()
Const strRangeToCheck As String = "A1:T2000"
With Workbooks.Open(MyFile)
varSheetA = .Worksheets(1).Range(strRangeToCheck).Value
.Close False
End With
End Sub
Sub DisplayFile_Click()
Range("A4").Value = varSheetA(1, 1)
End Sub