sheet1
A B C D
日付 名前 事由
1 はさん 休み
4 いさん 早退
sheet2
A B C D E... AF
日付 1 2 3 4... 31
いさん 早退
ろさん
はさん 休み
---------------------
シフト表を作成しており、提出された届出をsheet1に入力し、
sheet2に反映させるようにし、反映後にsheet1のD列に”済”と
入力できればと思っています。
また、次に入力した場合は”済”の次から反映できるように
できればと思っていますが、マクロの組み方が分かりません。
よろしくお願いいたします。
No.4ベストアンサー
- 回答日時:
No.2の回答者です。
>"失敗しました"と出てしまいます(><)
ふつうは、正しく設定している限りは、このエラーが出てくることはめったにないのですが、ただ、
最初に使おうとしたりするときにオブジェクトが収まっていないと、そのようなエラーが出るようです。こちらで新しくシートから作り直してみましたが、こちらも1回だけ不明なエラーが発生しました。
一応確認だけさせていただきます。
最初に、エラーの時の対処の仕方を書いておきます。
(1)
> Set sh1 = Worksheets("Sheet1")
> Set sh2 = Worksheets("Sheet2") ←こちら側の名称は正しいですか?
(2)
25行目付近にある
j = .Cells(i, 1).Value
これは、確認のためで不要ですから、削除してください。
(3)
34行目付近にある、このコードですが、
' If Err() <> 0 Then
' MsgBox "失敗しました", vbExclamation
' Exit Sub
' End If
(文字の先頭に、シングルコーテーション「'」で、マクロを使わないようにする)
これは、予定していないエラーのためでしたが、なくても作動するはずでず。
次に、デバッグ・ツールの使い方を念のために書かせていただきます。
(解決すれば、使わなくても結構です)
以下の左端の枠をワンクリックして「●」をつけます。(通常茶色の丸)
● If .Cells(i, dt + 1).Value = "" Then '日付が2列目を1日とした場合 dt +1【修正】
そして同じようにマクロを実行させます。
その部分に来るとマクロが止まります。、次に、F8 を押すと、ステップモードに切り替わりますので、1行ずつエラーがないのか探します。
それは、ローカルウィンドウを、画面下に出して、変数が正しく返っているか、0になったりしていないか、エラーが出たところを見つけるわけです。
●は、メニューのデバッグで、「すべてのブレークポイント削除」を選択していただけると早いです。
なお、マクロとワークブックはアドインというスタイルで、分離させることも可能です。
No.3
- 回答日時:
此は 如何でしょう?
代表式、
=IFERROR(OFFSET(Sheet1!$A$2,
SUMPRODUCT((C$2=OFFSET(Sheet1!$A$2,1,0,COUNTA(Sheet1!$A$3:$A$102),1))*($B3=OFFSET(Sheet1!$A$2,1,1,COUNTA(Sheet1!$A$3:$A$102),1))*ROW(OFFSET(Sheet1!$A$2,1,0,COUNTA(Sheet1!$A$3:$A$102),1)))-2,2,1,1),"")&""
ファイル、
https://1drv.ms/x/s!AjviygfJDgV_2nv6LrEwFAiIMjOr
No.2
- 回答日時:
こんばんは。
'//フォームコントールのボタンを想定したマクロ
Sub ボタン1_Click()
Dim rw As Long, dt As Variant, c As Variant
Dim i As Long, j As Long
Dim DataRow As Range
Dim sh1 As Worksheet, sh2 As Worksheet
Dim sReason As String
Dim Psn As String
Set sh1 = Worksheets("Sheet1")
Set sh2 = Worksheets("Sheet2")
With sh1
rw = .Cells(Rows.Count, 4).End(xlUp).Row + 1
dt = .Cells(rw, 1).Value '日付
Psn = .Cells(rw, 2).Value '人
sReason = .Cells(rw, 3).Value '事由
End With
On Error Resume Next
With sh2
Set c = .Cells.Find(Psn, , xlValues, xlPart)
If c Is Nothing Then
MsgBox Psn & "のお名前が見つかりません。", vbExclamation
Exit Sub
End If
i = c.Row
j = .Cells(i, 1).Value
If .Cells(i, dt + 1).Value = "" Then '日付が2列目、1非とした場合 dt +1
.Cells(i, dt + 1).Value = sReason
Else
If MsgBox("すでに" & .Cells(i, dt + 1).Value & "と書かれています。" & vbCrLf & _
"上書きしますか?", vbYesNo) = vbNo Then: Exit Sub
End If
End With
If Err() <> 0 Then
MsgBox "失敗しました", vbExclamation
Exit Sub
End If
On Error GoTo 0
sh1.Cells(rw, 4).Value = "済"
End Sub
p.s. 「葉」さんの読みは、本当は[よう]と言います。
No.1
- 回答日時:
マクロでなければ、
駄目なのですか?
式で 作る方が、
簡単ですよ?
「式の方が 重くなる」と、いうのは、
噓ですよ。
式だと、
瞬時に、漏れなく、
繁栄されるから、
「済み」の 処理は、
要りませんよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel 売上管理シートに入力した売上データを、日報に自動反映させたいと考えています。 売上管理シ 3 2023/04/29 18:08
- Excel(エクセル) Excelで日報を自動で作成したい 売上管理シートに入力した売上データを、日報に自動反映させたいと考 1 2023/04/29 18:07
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Excel(エクセル) エクセルカレンダーに予定表を反映したいです。 6 2022/09/30 14:39
- Visual Basic(VBA) VBA 別sheetからの転記なのですが 2 2023/05/22 15:55
- Excel(エクセル) SUMIFSと日付変換 10 2023/04/16 15:38
- Visual Basic(VBA) VBA Userform転記のみ編集可 1 2023/06/29 11:03
- Excel(エクセル) こんなことできますか?例えば、sheetに貼り付けた図形のタイトルを、セルA1の文字で表示する。 5 2022/04/22 15:25
- Excel(エクセル) フォルダ内のエクセルファイルを開かずにデータ採取する関数式 2 2022/12/22 22:15
- PHP PHPSpreadsheetによる書き出し時のページネーション方法について 1 2023/03/20 10:35
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelについて教えてください
-
【マクロ】名前を保存する際に...
-
エクセル マクロ チェックボックス
-
Excel 複数列 A列B列C列一致 D...
-
エクセル vbaについて教えてく...
-
エクセルであるセルに数字を入...
-
【Excel】数字を3倍にし、なお...
-
Excel分析ツールでのポアソン回...
-
エクセルVBA、別ブックへ転記す...
-
【マクロ】顧客番号にて一致さ...
-
Excelでセルの値が同じか...
-
(マクロ)データをAブックからB...
-
エクセルを使っていて2024/5/15...
-
エクセル共有したが、アクセス...
-
エクセル②
-
エクセルのデーターが2か月前の...
-
UNIQUE関数が使えないバージョ...
-
INDIRECTを使わず excelで複数...
-
Excelで縦軸の書式を0:00形式の...
-
【マクロ】読取専用のファイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報
"失敗しました"と出てしまいます(><)