私はvbaコードを使用して、2組のシートを使用して特定の行のデータを確認し、承認します: 1番目は「特定のフォームビューで入力したデータを確認します。 2番目は「トラッカー」で、すべてのデータが外部ダウンロードから保存されます。隣接するセルの値に基づいて行内にあるセルの範囲をロックする
「View_Form」シートでは、ファイルIDを選択し、それに関連するすべてのデータが表示され、すべてが良好であれば、「Approved」マクロをクリックし、選択したファイルに隣接する列HR IDそれ以外の場合は空白になります。
私はまだ動作していますが、依然として制限したい "Approved"の行を編集することができます。つまり、HRセルにA:HRの特定の行がロックされるか、ユーザーが編集を制限する必要があるというテキスト「承認済み」が含まれている場合です。
は、シートの保護を解除するためのパスワードを使用した後に編集するユーザーを有効にする必要がありますいずれかがこれで私を助けることができる123
として例えば、パスワードの入力を言う...
承認のための現在のコード:
Sub Approval()
Dim found As Range 'define variables
Dim SelectedFileID As String
'Approval function
SelectedFileID = Sheets("View_Form").Range("SelFileID").Value 'get the currently selected File ID
Set found = Sheets("Tracker").Range("B:B").Find(What:=SelectedFileID) 'find the file ID in the Sheet Tracker
If Not found Is Nothing Then 'if found
Sheets("Tracker").Cells(found.Row, 226).Value = "Approved" 'change the value of the row it was found, but column 226 which is column HR
Else
MsgBox "ID not found in Sheet Tracker!", vbInformation 'if not found then show message
End If
ActiveWorkbook.Save '---------------Save workbook
Application.DisplayAlerts = False
End Sub
変数lastrowとして2つのエラーメッセージが表示され、 "i"が見つかりません。しかし、私はDim Lastrow As LongとDim i As Longでコードを修正し、行全体をロックすることによってそのコードを修正しました。ご協力いただきありがとうございます。 – Sanoj
私は上記のコードで確認しています。承認コードは、シートトラッカーでIDが見つからないと1回だけ実行されます。上記のコードでは、細胞数の変化はほとんどありませんでした。 – Sanoj
@Sanoj、これは期待どおりに動作します。あなたがOption Explicitを使用していて、VBAが変数を宣言するように指示していたため、最初のコメントはあなたの最近のコメントを理解できません。 IDはView_Formのドロップダウンで選択されているので、リストボックスをどのように埋め込むのかが関係していると思います... – Xabier