このコードは、シートが存在するかどうかをチェックし、ブール値を返す関数を定義しています。 Subはブックをアクティブ化しようとしています。次に、シート(DataEntry)をチェックして行を繰り返し、チーム名が既にシートであるかどうかをチェックし、その名前の新しいシートを作成せずにそのシートにデータを貼り付ける。シートが存在する場合、シートは既存のシートにコピーされます。それから、マッチ番号に1を加えて、データをペーストする行を決定するときにペーストするようにします。しかし、シート上のボタンで実行しようとすると、byref引数の型不一致エラーが出ます。コンパイルエラー:ByRef引数の型の不一致が新しいシートの作成
何が間違っている可能性について考えていますか?
Function shtexists(shtname As Worksheet) As Boolean
Dim sht As Worksheet
Set sht = Sheets(shtname)
On Error GoTo 0
SheetExists = Not sht Is Nothing
End Function
Sub AddData()
Workbooks("ScoutingDatabseMaster.xlsm").Activate
Dim teamname As String
Dim countery As Integer
Dim matchnumber As Integer
matchnumber = 1
countery = 4
teamname = Range("B4", "B" & countery)
For countery = 4 To 9
If shtexists(teamname) Then
Worksheets("DataEntry").Range("C" & countery, "M" & countery).Copy
Worksheets(teamname).Range("A" & matchnumber).Paste
If teamname = "" Then
MsgBox ("You forgot to Enter a Team Number!")
Else
Sheets.Add.Name = teamname
End If
Next countery
matchnnumber = matchnumber + 1
countery = 4
End Sub
またはその他の方法 - ()(ワークシート "TEAMNAME")をこの 'shtexistsようにそれを呼び出すには、' – Wujaszkun
@Wujaszkunは、他の "タイプミス" ことを逃した、ありがとう –