Я начал использовать макросы в эти выходные (я, как правило, быстро поднимаюсь в отношении компьютеров). До сих пор я мог пройти с поиском ответов, когда у меня есть вопросы, но мое понимание настолько ограничено. Я до такой степени, что я больше не понимаю ответы. Я пишу функцию с помощью VBA для Excel. Я хотел бы, чтобы функция приводила к диапазону, который позже может быть использован как переменная для другой функции. Это код, который у меня есть:Объект, требуемый Ошибка Функция VBA
Function StartingCell() As Range
Dim cNum As Integer
Dim R As Integer
Dim C As Variant
C = InputBox("Starting Column:")
R = InputBox("Starting Row:")
cNum = Range(C & 1).Column
Cells(R, cNum).Select
Код до этого работает. Он выбирает ячейку, и все хорошо в мире.
Set StartingCell = Range(Cell.Address)
End Function
Я полагаю, что не знаю, как сохранить это местоположение как StartingCell(). Я использовал тот же код, что и в другой очень похожей ситуации с «= Range (Cell.Address)». Но это не работает. Есть идеи? Мне нужно предоставить больше информации для справки? Спасибо за ваш вклад!
Редактировать: Я забыл добавить, что я использую InputBox, чтобы выбрать начальную ячейку, потому что я буду повторно использовать этот код с несколькими наборами данных и вам нужно будет поместить каждый набор данных в другое место, каждый раз, когда это будет следуют одному и тому же образцу популяции.
Спасибо A.S.H & Шай Rado
Я обновил код:
Function selectQuadrant() As Range
Dim myRange As Range
Set myRange = Application.InputBox(Prompt:="Enter a range: ", Type:=8)
Set selectQuadrant = myRange
End Function
Это работает хорошо. (Похоже, что текст должен показывать «Введите диапазон:», но он только показал «Вход» для InputBox. Возможно, это может быть из-за того, что я нахожусь на Mac?
Во всяком случае, мне удалось позвонить и установите его в новую переменную в моем другом коде. Но я делаю что-то похожее, чтобы установить длинный (для цвета), чтобы я мог выбирать ячейки определенного цвета в пределах диапазона, но я получаю все виды объектов ошибки здесь тоже. Я действительно этого не понимаю. (И я думаю, что у меня больше проблем, потому что, находясь на Mac, у меня нет обычного окна для редактирования моих макросов. Только я, в основном текст ящик и интернет.
Итак, здесь также есть функция для цвета и суб, которые используют функции. (Я отредактировал так много, я не уверен, где я начал или где e ошибка.)
Я использую функции и устанавливаю переменные равными результатам функции.
Sub SelectQuadrantAndPlanets()
Dim quadrant As Range
Dim planetColor As Long
Set quadrant = selectQuadrant()
Set planetColor = selectPlanetColor() '<This is the row that highlights as an error
Call selectAllPlanets(quadrant, planetColor)
End Sub
Это функция, я использую, чтобы выбрать цвет, который я хочу, чтобы выделить в моем диапазоне
я попеременно быть в порядке с использованием внутреннего цвета из диапазона, который я выбираю, но Я не знал, как установить цвет интерьера как переменную, поэтому вместо этого я пошел с 1, 2 или 3 в поле ввода.
Function selectPlanetColor() As Long
Dim Color As Integer
Color = InputBox("What Color" _
& vbNewLine & "1 = Large Planets" _
& vbNewLine & "2 = Medium Planets" _
& vbNewLine & "3 = Small Planets")
Dim LargePlanet As Long
Dim MediumPLanet As Long
Dim smallPlanet As Long
LargePlanet = 5475797
MediumPlanet = 9620956
smallPlanet = 12893591
If Color = 1 Then
selectPlanetColor = LargePlanet
Else
If Color = 2 Then
selectPlanetColor = MediumPlanet
Else
If Color = 3 Then
selectPlanetColor = smallPlanet
End If
End If
End If
End Function
Любая помощь будет изумительной. Я умел делать пьесы индивидуально, но теперь собираю их все вместе в один подзаголовок, который называет их не очень хорошо для меня. Спасибо VBA community :)
Что такое 'Cell.Address'? Вы хотите использовать выбранную ячейку? Как «Set StartingCell = Cells (R, cNum) .Address'? Или, '... = Диапазон (ячейки (R, cNum), ячейки (R, cNum))'? Кроме того, лучше использовать [.Select'/'.Activate'] (https://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros). в VBA. Edit: Кроме того, я думаю, что вы хотите 'cNum = Range (C &:: 1"). Столбец ', предполагающий' C', является Lettter – BruceWayne
Я, честно говоря, только что видел его (Cell.Address), который использовался в другом месте и думал, может быть, он что-то сделал Мне было нужно. Я крайний newb (я начал, как 2 дня назад) – jessmariemetal
@jessmariemetal вы проверили какие-либо из ответов ниже? любая обратная связь? –