小编Ler*_*roy的帖子

Excel - 计算两个日期之间每个月的天数

我正在尝试编写一个 Excel 公式,可以将其拖动到一行单元格上,以给出两个指定日期之间每个月的天数。例如:

         A           B         C       D       E       F 

1  | START DATE | END DATE |  Jan  |  Feb  |  Mar  |  Apr  |...
   ---------------------------------------------------------
2  |  10/02/17  | 15/03/17 |   0   |  19   |  15   |   0   |...
Run Code Online (Sandbox Code Playgroud)

另一个复杂之处是结束日期可能留空,表明结束日期应视为今天。我可以在从 C2 开始的单元格中放入公式,但必须保留 A 列和 B 列供用户输入。

我使用大量嵌套的 if 语句取得了一些进展,但如果结束日期为空,我很难处理它。

有人可以帮忙吗?

*编辑

到目前为止,我没有显示我写的公式,因为我担心它有点混乱,但根据要求,我现在在下面显示(这个公式来自 C2)

 =IF(AND($A2<C$1,$B2<D$1),DAY(A2),IF($A2>=D$1,0,IF(AND($A2<C$1,$B2=""),IF(TODAY()<C$1,0,IF(TODAY()>C$1,IF(TODAY()<D$1,DAY(TODAY()),D$1-C$1),IF(TODAY()<D$1,INT(TODAY()-$A2),$D1-$C1))),IF(AND($A2>=C$1,$B2=""),IF(TODAY()<D$1,INT(TODAY()-$A2+1),D$1-$A2),IF(AND($A2>=C$1,$B2<D$1),$B2-$A2+1,IF(AND($A2<C$1,$B2<C$1),0,IF(AND($A2>=C$1,$B2>=D$1),D$1-$A2,IF(AND($A2<C$1,$B2<D$1),DAY(B2),IF(AND($A2<C$1,$B2>=D$1),D$1-C$1,0)))))))))
Run Code Online (Sandbox Code Playgroud)

excel excel-formula

3
推荐指数
1
解决办法
2万
查看次数

启动受密码保护的数据库并关闭现有数据库

我正在尝试设置一个“Launcher”数据库,其中包含 VBA 代码,该代码将打开第二个受密码保护的数据库。然后我可以将启动器数据库转换为 accde,这样包含密码的 VBA 就无法读取。

到目前为止我有以下代码。

Private Sub Form_Load()
 Dim acc As Access.Application
 Dim db As DAO.Database
 Dim strDbName As String

 strDbName = "C:\database Folder\secureDB.accdb"
 Set acc = New Access.Application
 acc.Visible = True
 Set db = acc.DBEngine.OpenDatabase(strDbName, False, False, ";PWD=swordfish")

 acc.OpenCurrentDatabase (strDbName)
 
 Application.Quit
  
End Sub
Run Code Online (Sandbox Code Playgroud)

当启动器数据库打开时,会加载一个表单,该表单随后会触发上述代码。它有效,但问题是最后一行,它旨在仅关闭启动器数据库,但关闭两个数据库。我也尝试过使用 Shell 打开主数据库,但无法通过这种方式传递密码。

如何关闭第一个数据库,同时保持第二个数据库打开?

ms-access vba ms-access-2010

1
推荐指数
1
解决办法
7792
查看次数

标签 统计

excel ×1

excel-formula ×1

ms-access ×1

ms-access-2010 ×1

vba ×1