Код VBA / Macro для получения значения текстового поля

Sub CopyRandomRows() Windows("sample rnd.xlsm").Activate Rows("1:1").Select Selection.Copy Application.CutCopyMode = False Selection.Copy Windows("rnd sample draft.xlsm").Activate Sheets("Random Sample").Select Rows("1:1").Select ActiveSheet.Paste Dim source As Range, target As Range, randCount&, data(), value, r&, rr&, c& Set source = Workbooks("sample rnd.xlsm").Worksheets("Sheet1").Range("A2:L5215") Set target = Workbooks("rnd sample draft.xlsm").Worksheets("Random Sample").Range("A2") randCount = 5 data = source.value For r = 1 To randCount rr = 1 + Math.Round(VBA.rnd * (UBound(data) - 1)) For c = 1 To UBound(data, 2) value = data(r, c) data(r, c) = data(rr, c) data(rr, c) = value Next Next target.Resize(randCount, UBound(data, 2)) = data End Sub 

Это мой код. Моя проблема в том, что я могу изменить только число данных, которые я хочу, если я изменю код randCount = 5 . Я хочу иметь возможность использовать мой TextBox и использовать его для определения количества данных. Я попробовал randCound = TextBox1.value и randCount = TextBox1.Text но, похоже, не работает. Что мне не хватает? Как я могу заставить его работать. заранее спасибо

Если TextBox1 находится на листе с именем Main, вы можете использовать это:

 Worksheets("Main").TextBox1.Value 

Еще лучше, вы можете предоставить листу CodeName что-то вроде shtMain а затем использовать

 shtMain.TextBox1.Value 

И, наконец, вы также можете попасть в текстовое поле через коллекцию форм (но предпочтительные выше методы) …

 Worksheets("Main").Shapes("TextBox1").OLEFormat.Object.Object.Value 

Вы должны иметь возможность использовать foo = InputBox("bar") .

Если, однако, вы получаете его из UserForm, тогда это будет foo = UserForm1.TextBox1.Value

  • Передайте значение текстового поля UserForm в ячейку
  • Ячейка, подключенная средствами управления, продолжает терять формулу
  • Текстовое поле Excel ActiveX - количество символов или регистр изменений
  • Как установить имя текстового поля как переменную и разрешить изменять имя в цикле?
  • Форматирование текстовых полей в форме пользователя
  • Удалить строку из текстового поля, форм и т. Д., Которые могут быть сгруппированы
  • Каждый символ в TextBox разного цвета в vba excel
  • Добавление текстовых и текстовых значений в ячейку
  • Как выбрать данные в TextBox или ListBox, а затем отправить электронную почту через Outlook на основе этих данных
  • Excel VBA - получить слово с двойным щелчком в многострочном текстовом поле userform
  • Добавление текста в текстовое поле
  • Interesting Posts

    Смещение из последней строки со значением в Excel

    Внешняя таблица не соответствует ожидаемой ошибке формата в сборке выпусков c #

    Excel. Обратитесь к той же ячейке выше для двух пробелов, добавьте ссылку на ячейку на 1, повторите шаблон

    Как назначить диапазон для строки в VBA Excel

    Обновление существующего кода Excel VBA – пропустить файл, если рабочий лист не существует, и переименовать скопированный рабочий лист с именем исходного файла

    Строки Excel 2016 и OLAP

    DAX – создать динамический индексный столбец

    макрос, вставляющий новую строку внизу, отключает проверку данных

    Как экспортировать данные из базы данных SQL в MS Excel

    Ошибка макроса Excel: 1004

    Как вставить значения в определенную текстовую позицию в VBA?

    Усечение фактических значений в VBA

    запись данных из Excel в текстовый файл

    Экспорт кумулятивной диаграммы потока (CFD) из Джиры

    формат (r, c) для средней формулы с несмежными ячейками

    Давайте будем гением компьютера.