2017-10-13 63 views
0

我从.csv导入下列数据。所以当我打开这个CSV(使用宏)。以下行将被打印。Excel新增列宏

Group Name Name    UserName Enabled Lastchanged 
Grp-Doe  John doe   j.doe  True  9-10-2017 07:25 
Grp-Doe  Janna x   j.x  False  10-10-2017 08:10 

现在,我想新列名为NameChanged使用Excel公式。基本上我不想输出以下内容。

Group Name Name    UserName Enabled Lastchanged  NameChanged 
Grp-Doe  John doe   j.doe  True  9-10-2017 07:25 John doe disabled on:09-10-2017 
Grp-Doe  Janna x   j.x  False  1-10-2017 08:10 Janna X 

NameChanged由式I写计算和我仍然posess。

是否有一个自动添加此数据的宏函数?

我想这个至今:

Sub AddData() 
lastRow = Sheets("Sheet2").Cells(65536, 2).End(xlUp).Row 
Sheets("Sheet2").Range("A2:A" & lastRow).Value = "=ALS(D2="False"; B2&" 
"&"Disabled op: "&TEKST(E2;"d-m-jjjj uu:mm"); B2)" 
End Sub 

这给了我一个语法错误

+1

那你试试到目前为止内需要双“”的报价?您至少需要自己开始,因为这不是免费的代码编写服务。请[编辑]你原来的问题,并添加你到目前为止已有的代码。告诉你在什么地方被卡住或在哪条线上出现错误(以及哪些)。 –

+0

您需要将.Formula设置为.Value。此外,我怀疑以下“= ALS(D2 =”False“; B2&” “&”Disabled op:“&TEKST(E2;”dm-jjjj uu:mm“); B2)”需要一些检查以确保协调尽管这可能是字符串,因为我正在使用不同的区域设置。 – QHarr

+0

当我使用.Formula而不是.Value编辑器停在第二个“标记。我怎么能避免这个? –

回答

1

如果你要进入一个公式,你应该

  • 使用Formula财产,而不是Value属性
  • 使用EN-US语言环境编写公式(对于函数名称等) - 或者使用在FormulaLocal属性,如果你喜欢,但当时如果他们试图通过使用""代替


使用您的代码
  • 确保公式内的任何"标记逃脱有人在另一区域会得到一个错误
    Sub AddData() 
        lastRow = Sheets("Sheet2").Cells(65536, 2).End(xlUp).Row 
        Sheets("Sheet2").Range("A2:A" & lastRow).Formula = "=IF(D2=""False"", B2&"" Disabled op: ""&TEXT(E2,""d-m-jjjj uu:mm""), B2)" 
    End Sub 
    

    认为我翻译你的公式正确。看看它是否有效(即进入单元格后,它看起来像你想要的),如果没有,我会再看一次。

  • 0

    如果您已经创建了两个函数调用ALS()和TEKST(),那么只需要改变。价值以.Formula和你的公式

    +0

    'ALS'和'TEKST' ** ** **当翻译成OP的Excel语言环境时,可以使用“IF”和“TEXT”。 – YowE3K

    +0

    很高兴知道,谢谢 –