Entsperren Sie das Blatt mit Passwort, ohne das Passwort im Makro freizulegen

8

Ich habe vor kurzem begonnen, einige Makros in Excel zu schreiben. Ich habe ein geschütztes Arbeitsblatt und einige Schaltflächen, mit denen der Benutzer Spalten / Zeilen an einer bestimmten Stelle im Arbeitsblatt hinzufügen / entfernen kann.

Ich entspreche derzeit das Arbeitsblatt, führe die Funktionen aus und schütze das Arbeitsblatt.

Das Problem ist, dass das geschützte Blatt-Passwort im Klartext im Makro für neugierige Augen zu sehen ist.

Wie kann ich ein Passwort auf dem Blatt haben, um es zu schützen, aber gleichzeitig meinem Makro erlauben, die Tabelle zu entschützen, während es seine Funktionen ausführt, und es dann erneut zu schützen, ohne das Klartext-Passwort in das Makro einzugeben? / p>     

Lock 16.08.2012, 05:55
quelle

3 Antworten

13

Zwei Optionen:

  1. Passwort schützen die VBA. (Obwohl der Schutz vor VBA bei weitem nicht vor böswilligen Absichten geschützt ist, ist es nicht schlechter als die Sicherheit des Blattschutzes)
  2. Wenn Sie den Arbeitsblattschutz mithilfe von VBA festlegen, können Sie UserInterfaceOnly:=True angeben.

    sh.Protect Password:="Password", UserInterfaceOnly:=True

    Nach dieser Einstellung kann der VBA-Code das Blatt ändern, ohne ein Passwort anzugeben. Da das Kennwort einmal angegeben werden muss, um den Schutz überhaupt anzuwenden, führen Sie diesen Code aus einer separaten Arbeitsmappe aus, oder fügen Sie ihn selbst hinzu.

chris neilsen 16.08.2012 06:18
quelle
1

Ich habe vor einiger Zeit etwas Code gefunden, der hilfreich sein kann. Dadurch wird jedes passwortgeschützte Arbeitsblatt entsperrt. Je nach Länge des Passworts dauert es ein wenig, aber im Grunde schlägt es sich nur durch und öffnet das Arbeitsblatt. Ist vielleicht nicht die effizienteste Antwort auf Ihre Frage, aber es ist trotzdem ein nützliches Stück Code.

%Vor%     
Oliver Lockett 10.07.2013 11:09
quelle
0

Sie können UserForm aufrufen, um die Kennworteingabeaufforderung zu bearbeiten, aber die Zeichen maskieren, indem Sie PasswordChar als Textfeldeigenschaft verwenden.

    
brettdj 21.04.2017 07:34
quelle

Tags und Links

yii\base\ErrorException
Copied! Copy Stacktrace Search Stackoverflow Search Google Error

PHP Core Warningyii\base\ErrorException

PHP Startup: Unable to load dynamic library 'mongodb.so' (tried: /usr/lib64/php/modules/mongodb.so (/usr/lib64/php/modules/mongodb.so: cannot open shared object file: No such file or directory), /usr/lib64/php/modules/mongodb.so.so (/usr/lib64/php/modules/mongodb.so.so: cannot open shared object file: No such file or directory))

$_GET = [
    'id' => '352068',
    'url' => 'unprotect-sheet-with-password-without-exposing-password-in-the-macro',
];

$_SESSION = [
    '__flash' => [],
];