В этом случае вы можете перебрать каждый лист во вновь открывшейся книге и проверить, что имя содержит строку CLS
.
Do While strExtension <> ""
Set wbOpen = Workbooks.Open(strPath & strExtension)
Dim checkSheet as Worksheet
For each checkSheet in wbOpen.Worksheets
If UCase$(checkSheet.Name) Like "*CLS*" Then
checkSheet.Copy After:=wbNew.Sheets(wbNew.Sheets.Count)
wbNew.Sheets(wbNew.Sheets.Count).Name = wbNew.Sheets(wbNew.Sheets.Count).Cells(1, 1)
End If
Next
wbOpen.Close SaveChanges:=False
strExtension = Dir
Loop
Mx find-function
- ваш друг. Он расскажет вам, как работает emacs, и покажет вам исходный код. Используя его, я обнаружил, что query-regexp-replace
вызывает query-replace-read-args
, который вызывает query-replace-read-from
, который вызывает чтение из минибуфера
с использованием приглашения, созданного из последнего использованного регулярного выражения, которое сохраняется в пунктирной паре query-replace-defaults
.
Итак:
(defun my-func ()
"Do stuff..."
(interactive)
(read-from-minibuffer "Regexp? " (first query-replace-defaults)))
- это команда, которая выдает приглашение с последним введенным регулярным выражением по умолчанию.
Используйте переменную для истории ввода и интерактив со списком:
(defvar my-func-history nil)
(defun my-func (str)
(interactive (list (read-from-minibuffer "Input string: " (car my-func-history) nil nil 'my-func-history)))
(insert str))
Если вы не хотите, чтобы последний значение, введенное там изначально, замените (car my-func-history)
на ноль
. Вы можете, конечно, стрелку вверх / вниз, чтобы просмотреть историю в приглашении.