Excel VBA를 처음 사용합니다. 나는 사용자가 한 번에 여러 셀에 goalseek를 사용할 수 있도록 온라인에서 찾은 VBA 함수를 사용하려고합니다. 스프레드 시트에서 함수를 호출하려면 어떻게해야합니까? 함수의 변수 (예 : Taddr, Aaddr, gval)와 연결될 것으로 예상되는 셀을 가리키는 방법은 무엇입니까? 코드 자체에 셀 값과 범위를 써야하고 그런 식으로 실행해야합니까? 이 입력으로 이러한 변수를 발생하도록스프레드 시트에서 VBA 함수 및 변수 사용
어쩌면 I의 기능을 재정의한다, 그래서
Option Explicit
Sub GSeekA()
Dim ARange As Range, TRange As Range, Aaddr As String, Taddr As String, NumEq As Long, i As Long, j As Long
Dim TSheet As String, ASheet As String, NumRows As Long, NumCols As Long
Dim GVal As Double, Acell As Range, TCell As Range, Orient As String
' Create the following names in the back-solver worksheet:
' Taddr - Cell with the address of the target range
' Aaddr - Cell with the address of the range to be adjusted
' gval - the "goal" value
' To reference ranges on different sheets also add:
' TSheet - Cell with the sheet name of the target range
' ASheet - Cell with the sheet name of the range to be adjusted
Aaddr = Range("aaddr").Value
Taddr = Range("taddr").Value
On Error GoTo NoSheetNames
ASheet = Range("asheet").Value
TSheet = Range("tsheet").Value
NoSheetNames:
On Error GoTo ExitSub
If ASheet = Empty Or TSheet = Empty Then
Set ARange = Range(Aaddr)
Set TRange = Range(Taddr)
Else
Set ARange = Worksheets(ASheet).Range(Aaddr)
Set TRange = Worksheets(TSheet).Range(Taddr)
End If
NumRows = ARange.Rows.Count
NumCols = ARange.Columns.Count
GVal = Range("gval").Value
For j = 1 To NumCols
For i = 1 To NumRows
TRange.Cells(i, j).GoalSeek Goal:=GVal, ChangingCell:=ARange.Cells(i, j)
Next i
Next j
ExitSub:
End Sub
잠시 시간을내어 http://www.wikihow.com/Create-a-User-Defined-Function-in-Microsoft-Excel을 검토하십시오. 변수까지 함수를 호출 할 때 변수를 전달합니다. – Sorceri
변수를 전달하는 방법을 알고 있지만 위의 함수는 변수를 함수에 전달하지 않습니다. 이 함수를 사용하려면 수동으로 셀 값을 코드 – l3win
에 입력해야하므로 해당 변수를 사용하여 함수에 매개 변수를 지정해야합니다. Sub GSeekA (Aaddr As String) – Sorceri