小编Ega*_*lth的帖子

在LaTeX中添加类似MS-Word的注释

我需要一种方法将"Word样式"中的文本注释添加到Latex文档中.我不是要评论文档的源代码.我想要的是一种向文档添加更正,建议等的方法,这样它们就不会中断文本流,但这仍然可以让每个人都轻松地知道,它们与句子的哪一部分相关.编辑文档进行打印时,它们也应该"消失".

起初,我考虑过编写一个新命令,只是将输入转发给\marginpar{},并且在编译打印时只会使定义为空.问题是你不能保证评论会出现在哪里,你将无法区分它们marginpars.

任何的想法?

latex comments ms-word

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

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

表根据范围干扰VBA范围变量

Excel文件包括部署在表(VBA列表对象)中的VBA编码的用户定义函数(UDF).现在,出于逃避我的原因,如果UDF模块包含在任何子函数或函数范围之外声明的Range变量,则在打开文件时会收到非常明显的警告:"自动错误 - 灾难性故障".

"灾难性"似乎是夸大其词,因为在警告被驳回后,文件似乎正常工作.但我仍然想了解问题所在.我已设法用MVC示例复制该问题,如下所示.我在Windows 10上运行Excel 2016(已更新).

有两个表(即VBA listobjects):表1列出了"项目"和表2中列出了"项目特征"(通过选择数据和点击生成两个表Table的上Insert标签).表2 ITEM_NAME()在字段Item_Name中调用了一个UDF ,它返回项目名称作为项目ID的函数,请参见屏幕截图:

在此输入图像描述

该函数ITEM_NAME()本质上是常规工作表函数INDEX和MATCH的包装器,如下面的代码所示:

Option Explicit

Dim mrngItemNumber As Range
Dim mrngItemName As Range

Public Function ITEM_NAME(varItemNumber As Variant) As String
' Returns Item Name as a function of Item Number.
    Set mrngItemNumber = Sheets(1).Range("A4:A6")
    Set mrngItemName = Sheets(1).Range("B4:B6")
    ITEM_NAME = Application.WorksheetFunction.Index(mrngItemName, _
    Application.WorksheetFunction.Match(varItemNumber, mrngItemNumber))
End Function
Run Code Online (Sandbox Code Playgroud)

因此,重复一下,使用此设置,我会在打开文件时收到Automation错误.但是,当我执行以下任何操作时,错误消失:

  1. 将声明移动到函数的范围内.这个解决方案没有吸引力,因为它需要更多的代码行,每个UDF对应一行,并且有许多代码.

  2. 将变量类型从Range更改为其他内容,例如Integer(因此该函数显然不起作用).

  3. 将表2转换为普通范围(即删除表).这也是一个不方便的解决方案,因为我真的想在我的代码中将Table功能用于其他目的.

  4. ITEM_NAME() …

excel vba excel-vba excel-2016

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

混合数字和文本时出现意外的COUNTIF行为(EXCEL)

这个问题是关于Excel的COUNTIF函数在用作数组公式时如何处理不同的数据类型.

有很多好的帖子详细说明如何使用COUNTIF执行任务,例如从列表中提取唯一值,例如这篇文章.我已经设法使用此帖和其他帖子中的示例来解决特定问题,但我正在尝试更深入地了解数组公式,以使我的公式适应新的需求.

我遇到了COUNTIF的一种特殊行为.通常,Excel似乎将字符串视为"大于"数字,因此以下示例有效:

Cell Formula      Returns
=1<2              TRUE
="a"<"b"          TRUE
="a">"b"          FALSE
=1<"b"            TRUE
Run Code Online (Sandbox Code Playgroud)

现在,假设范围A1:A6包含以下数据集:

1
2
3
A
B
C   
Run Code Online (Sandbox Code Playgroud)

对于此集合中的每个单元格,我想检查集合中所有小于或等于该单元格的单元格中的多少(在更复杂的公式中是一种有用的技术).我在范围B1中输入以下数组公式:B6:

{=COUNTIF($A$1:$A$6,"<="&$A$1:$A$6)} (CTRL + SHIFT + ENTER)

基于上面比较数字和字符串的示例(也在下面的D列中说明),我希望下面显示的输出看起来像C列.但是,数组公式返回B列中显示的结果,这表明字符串和数字元素由arraywise COUNTIF分别计算.

Column A     Column B     Column C     Column D
1            1            1            A1<"C" = TRUE
2            2            2            A2<"C" = TRUE
3            3            3            A3<"C" = TRUE
A            1            4            A4<"C" = TRUE
B            2            5            A5<"C" = TRUE
C            3            6            A6<"C" = FALSE
Run Code Online (Sandbox Code Playgroud)

那么问题是如何在C列中产生输出?(编辑: 只是为了澄清,我特意寻找使用COUNTIF数组属性的解决方案.) …

arrays excel excel-formula

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

UDF在VBA中工作,返回#REF!在工作簿中

我编写了一个函数来计算工作簿中特定工作表的2014年销售额,然后在特定单元格中打印2014年的总销售额.我可以调用VBA里面的函数,没问题.但是如果尝试使用工作簿中的函数,我会得到一个引用错误.我知道#REF!意味着公式指的是一个无效的单元格,我是否需要将某种值返回到我试图将该函数调用的单元格中?例如,如果我在单元格F25中输入sum2014("A1151"),我是否需要返回某种布尔值才能使函数正常工作?

Function sum2014(someaccount As String) As Currency
Dim i As Integer
Dim total As Currency
Dim ws As Worksheet
total = 0
Set ws = ActiveWorkbook.Worksheets(someaccount)
     For i = 1 To 50
          If ws.Range("A3").Offset(i, 0) >= DateValue("January 1, 2014") And ws.Range("A3").Offset(i, 0) <= DateValue("December 1, 2014") Then
          total = total + ws.Range("A3").Offset(i, 1)
          sum2014 = total
          End If
     Next
     If Worksheets("New Charges").Range("C3").Offset(i, 0) = someaccount Then
          Worksheets("New Charges").Range("E3").Offset(i, 0) = total
     End If
     For i = 1 To 5
          If …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

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