2

Есть кое-что, что я хочу сделать в Excel 2010. В частности, я хочу, чтобы можно было загружать данные открытого листа из текстового файла, нажав кнопку -important- в ячейке текущего открытого рабочего листа.

Итак, мои конкретные потребности:

  1. Если это возможно, запустить макрос / скрипт, нажав на ячейку.

О скрипте / макросе:

  1. Какой был бы предпочтительный, по вашему мнению, способ реализации.

  2. А более конкретно, как автоматически импортировать необходимые данные, только щелкая, без необходимости постоянно указывать желаемый файл .txt каждый раз, только 1 раз в максимуме, при запуске или с помощью пользовательского файла «инициализации / конфигурации».

2 ответа2

2

Вот очень конкретный пример, который вы можете адаптировать к вашим потребностям. Это макрос события рабочего листа, который запускается двойным щелчком по ячейке B9:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("B9")) Is Nothing Then Exit Sub
Cancel = True
Dim TextLine As String
    Close #1
    Open "C:\TestFolder\test.txt" For Input As #1
    i = 1
    j = 0
    Do While Not EOF(1)
        Line Input #1, TextLine
            j = j + 1
            Cells(i, j) = TextLine
        Loop
    Close #1
End Sub

Изменения, которые вы должны будете сделать:

  1. ячейка для двойного щелчка B9
  2. спецификация открываемого текстового файла
  3. место назначения для импортированных данных

Поскольку это код рабочего листа, его очень легко установить и использовать автоматически:

  1. щелкните правой кнопкой мыши имя вкладки в нижней части окна Excel
  2. выберите View Code - откроется окно VBE
  3. вставьте материал и закройте окно VBE

Если у вас есть какие-либо проблемы, сначала попробуйте на пробную версию.

Если вы сохраните книгу, макрос будет сохранен вместе с ней. Если вы используете версию Excel более поздней, чем в 2003 году, вы должны сохранить файл как .xlsm, а не .xlsx

Чтобы удалить макрос:

  1. вызвать окна VBE, как указано выше
  2. очистить код
  3. закройте окно VBE

Чтобы узнать больше о макросах в целом, смотрите:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

а также

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

Чтобы узнать больше о макросах событий (код листа), см .:

http://www.mvps.org/dmcritchie/excel/event.htm

Макросы должны быть включены, чтобы это работало!

0

Если нет веской причины для того, чтобы щелчок ячейки был активацией, то самым простым способом было бы создать объект кнопки.


Перейдите на вкладку «Разработчик» и выберите «Вставить», затем выберите кнопку из элементов управления Active X ActiveXControls


Затем нажмите и перетащите форму вашей кнопки, затем щелкните правой кнопкой мыши и выберите Proerties.

Отсюда вы можете изменить такие вещи, как текст, отображаемый на кнопке, и цвет кнопки. Если вы выберете «Управление форматами» при щелчке правой кнопкой мыши и перейдете к «Свойствам», вы можете установить флажок, чтобы он не перемещался и изменял размеры при изменении ячеек / строк / столбцов.

Затем щелкните правой кнопкой мыши на кнопке и выберите View Code
Посмотреть код


Это приведет вас к окну кода, где вы можете вставить свой VBA. Вы Оттуда введите остальную часть кода Гэри из Dim TextLine вниз.

Наконец, вернитесь на вкладку «Разработчик» и отмените режим проектирования.
Режим дизайна


Теперь вы можете проверить кнопку. Если вам нужно внести в него какие-либо изменения или переместить его, просто выберите «Режим разработки».

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .