1) It looks also like you're opening the file twice. Is that intentional?
2) Is the life of your file only to exist inside the button-click?
3) If you are just harvesting data from the file, does it need to be visible?

1) It looks also like you're opening the file twice. Is that intentional?
2) Is the life of your file only to exist inside the button-click?
3) If you are just harvesting data from the file, does it need to be visible?

1. I like open the file only once.
2. Not necessary that the life of file should have life within button-click
3. No need of visibility.

I would like to access data from excel through different button clicks.

What I'm talking about is the FileSystem.FileOpen and also the MyXl.Workbooks.Open calls.

Based on what you have said, the most important thing is to load the data from the sheet. This means you can treat the sheet like a database or other repository.
When I load data, I create a custom Object for the data, a Master which is a collection of those objects and a Loader.

I remain consistent with this, so that I can concentrate on the data rather than the repository.

Let's say I have a spreadsheet with the phonetic alphabet in it. If I have a loader for that data that is in a separate class, I don't have to worry about the the display or the user input. That class will do nothing but load that data into a collection of the objects.