セルの値を消すとVBAエディタ画面でエラーが出てしまいます。
"特定の列"に、"特定の値"を入力したとき、(下記実例では1列目に値6)
次の行からその値に24を足し続けるというプログラムを作りました。
実行すると動くことは動くのですが、シートに移ってそれらの数字を消すと
「実行エラー、方が一致しません」とVBAエディタ画面に戻りエラーになってしまいます。
このエラーを出さなくするにはどうしたらよろしいでしょうか?
その他、これ以外に改善点などございましたらご教授願います。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim 列番号 As Integer
Dim 行番号 As Integer
Dim 時間 As Integer
If Target.Column = 1 Then
If Target.Value = 6 Then
行番号 = ActiveCell.Row
列番号 = ActiveCell.Column
For 時間 = 30 To 2046 Step 24
Cells(行番号, 列番号).Value = 時間
行番号 = 行番号 + 1
Next 時間
End If
End If
End Sub
エクセルVBA 検索表示
例えばBooKの名前が”DATA”で
Sheet1に下記のようなデーターがある場合
A B C
1 w 3 w
2 え 3 r
3 q 2 y
4 w 3 う
他のエクセルBook”検索”というエクセルを開き
A1セルに”3”と表示させボタンをクリックすると
下記の表のように表示させたいです。
A B C
1 "3”
2 w 3 w
3 え 3 r
4 w 3 う
"DATA"からB列の"3"を検索されデーターそのものが
A2セル以降に表示させるにはどのようにすれば
良いですか?
Private Const WBHName = "DATA.xls"
Private Sub CommandButton1_Click()
Dim WBH As Workbook
Dim SH1 As Worksheet 'WBHのSheet1をセット
Dim strMyBookPath As String
Dim flag As Boolean 'ブックが空いているかの判定
Dim 最終行 As Long 'SH1の最終行を格納
Dim wb As Workbook
Dim lng As Long
strMyBookPath = ThisWorkbook.Path
If Dir(strMyBookPath & "\" & WBHName) <> "" Then
flag = False
For Each wb In Workbooks
If wb.Name = WBHName Then
flag = True
Exit For
End If
Next wb
この後に続く記述を
教えて欲しいです。
IMPUT BOXで複数のセルを選択すると、「オブジェクトが必要です」というエラーが発生します。
IMPUTBOXでひとつのセルを選択すると、正常に作動しますが、複数のセルを選択するとエラーが発生します(たまに複数のセルを選択しても正常にさどうすることがあります)
コードは下記のようなものです。
Dim myRange1 As Range
Dim myRange2 As Range
Dim myArea As Range
Set myArea = Range("A1:B50")
Set myRange1 = Application.InputBox _
(Prompt:="セル範囲をドラッグしてください", Type:=8)
For Each myRange2 In myRange1
myRange2 = Application.WorksheetFunction.VLookup(myRange2.Offset(, 13), myArea, 2, False)
Next
原因のわかる方、ご回答のほどよろしくお願いいたします。
はじめまして。
エクセル2000で以下のような一行おきに1を書く簡単なVBAを作ったのですが、
30000行までしかどうしても表示されないのですが、なぜでしょうか?
宜しければご教授ください。
Dim i As Integer
For i = 1 To 60001 Step 2
Cells(i, 1).Value = 1
Next i
IMPUT BOXで複数のセルを選択すると、「オブジェクトが必要です」というエラーが発生します。
IMPUTBOXでひとつのセルを選択すると、正常に作動しますが、複数のセルを選択するとエラーが発生します(たまに複数のセルを選択しても正常にさどうすることがあります)
コードは下記のようなものです。
Dim myRange1 As Range
Dim myRange2 As Range
Dim myArea As Range
Set myArea = Range("A1:B50")
Set myRange1 = Application.InputBox _
(Prompt:="セル範囲をドラッグしてください", Type:=8)
For Each myRange2 In myRange1
myRange2 = Application.WorksheetFunction.VLookup(myRange2.Offset(, 13), myArea, 2, False)
Next
原因のわかる方、ご回答のほどよろしくお願いいたします。
他ブックのシートの範囲を選択しコピーした内容を、別ブックのシート
に貼り付けするマクロを作成しています。
現在の情報であれば、下記のマクロで解決できます。
Sub Test1()
Dim myCellall As Range
Dim myCellsom As Range
Dim myCelluri As Range
Set myCellall = Sheets("すべて").Range("A1")
Set myCellsom = Sheets("総務").Range("A1")
Set myCelluri = Sheets("売上").Range("A1")
With Workbooks.Open("\")
.Worksheets("すべて").Range("A1:K17").Copy myCellall
.Worksheets("総務").Range("A1:K88").Copy myCellsom
.Worksheets("売上").Range("A1:K81").Copy myCelluri
.Close False
End With
End Sub
ただ、他ブックのシートのデータは変動するため、行と列の変更を行わなければいけません。行と列の増減があっても、自動的に対応できるマクロを書きたいと思います。
どのようなマクロを追加すればよろしいでしょうか。
よろしくお願いいたします。
Excelのシートにコマンドボタンを配置して、そのコマンドボタンをクリックすると「ファイルを開く」のダイアログボックスを表示したいと思っています。
そのとき、デフォルトでファイルの場所は「D:\Test」にしたいのですが、どうしたらよいのでしょうか。
ユーザは、ファイルの場所を探さずに、コマンドボタンをクリックしたら開きたいファイル名を指定するだけでいいようにしたいのですが。
下記では、ファイルを開くダイアログは表示されるのですが、ファイルの場所を毎回探さなくてはいけません。
どなたかご教授下さい。
Private Sub Cmd_ファイル選択_Click()
Dim FileName As Variant
FileName=Application.GetOpenFileName("Microsoft Excelブック,*.xls")
Workbooks.Open OpenFileName
End Sub