EXCEL VBA隐藏工作表和电子邮件问题

时间:2017-09-22 15:55:46

标签: excel vba excel-vba email

我正在尝试通过电子邮件发送一个Excel文件,其中包含一个隐藏了用户控件的工作表。

目前,在点击按钮时,它会隐藏工作表并使用VBA代码向flie发送电子邮件。

然而,有2个问题。 1)要取消隐藏此表,我必须转到VBA代码,直接进入窗口,然后键入

For Ws In Sheets:ws.Visible = True:Next

..然后点击进入。

有没有更好的方法来执行此操作,因为高级经理将执行并通过电子邮件发送报告。

2)通过电子邮件发送的文件,任何人都可以转到VBA代码和即时窗口...按照步骤取消隐藏选项卡。如何将其永久隐藏在通过电子邮件发送而不影响源文件的文件中?

以下是我用来隐藏它的代码:

from gensim import corpora, models, similarities

texts = [['teenager', 'martha', 'moxley'...], ['ok','like','kris','usual',...]...]
dictionary = corpora.Dictionary(texts)
>>> Dictionary(15937 unique tokens: ['teenager', 'martha', 'moxley']...)

corpus = [dictionary.doc2bow(text) for text in texts]
>>> [[(0, 2),(1, 2),(2, 1)...],[(3, 1),(4, 1)...]...]

tfidf = models.TfidfModel(corpus)
>>> TfidfModel(num_docs=999, num_nnz=86642)

tfidf(corpus[0])
>>> TypeError: 'TfidfModel' object is not callable

corpus[0]
>>> [(0, 2),(1, 2),(2, 1)...]

print(type(corpus),type(corpus[1]),type(corpus[1][3]))
>>> <class 'list'> <class 'list'> <class 'tuple'>

'后跟代码发送电子邮件......

2 个答案:

答案 0 :(得分:1)

尝试制作一个新子,并有一个按钮,用户可以按下该按钮取消隐藏所有工作表

Sub UnhideAllSheets()
   Dim ws As Worksheet

   For Each ws In ActiveWorkbook.Worksheets
      ws.Visible = xlSheetVisible
   Next ws

End Sub

答案 1 :(得分:1)

要取消隐藏工作表,您可以创建另一个宏来运行您手动输入的代码。

要隐藏VBA代码,请在编辑器中转到工具&gt; VBAProject属性&gt;保护,然后选择使用或不使用密码将其锁定。