gpt4 book ai didi

vba - Excel VBA : Paste clipboard data (external source) with the appropriate cell data type

转载 作者:行者123 更新时间:2023-12-04 20:34:46 24 4
gpt4 key购买 nike

我每天从外部源(其他应用程序,如 sqlClients:Heidi、MS SQL Management Studio、内部工具……)多次复制表数据(制表符分隔)并将它们粘贴到 Excel 工作表中以进行扩展分析。

我一直在努力制作一个以正确格式而不是 General 粘贴特定列的宏改变数据显示方式的类型。

起初,我尝试在使用 paste special 之前将特定列设置为适当的数据类型。仅粘贴值:

ActiveSheet.Range("B:D,X:X").NumberFormat = "@"
ActiveSheet.Range("A1").PasteSpecial _
Paste:=xlPasteValues _
, Operation:=xlNone _
, SkipBlanks:=False _
, Transpose:=False

可悲的是它给了 Run Time Error '1004' PasteSpecial method of Range class failed我无法解决。

接下来我尝试了 TextToColumns如下:
    ActiveSheet.Range("A1").Select
ActiveSheet.Paste

For Each cell In Selection.Cells
If cell <> "" Then
cell.TextToColumns _
Destination:=cell _
, DataType:=xlDelimited _
, ConsecutiveDelimiter:=False _
, Space:=False _
, TextQualifier:=xlTextQualifierNone _
, Tab:=True _
, semicolon:=False _
, comma:=False _
, other:=False _
, FieldInfo:=Array(Array(0, 2), Array(1, 2), Array(3, 2), Array(10, 2), Array(15, 2))
End If
Next

它不仅没有按预期工作(它有什么问题?),而且它似乎效率不高,因为它在遍历每个单元格之前粘贴剪贴板内容。我的 table 可能真的很大,因此这需要很多时间!

所以,我想知道是否有更好/优雅的方法将剪贴板数据从外部源粘贴到适当的单元格数据类型中。如果没有,帮助修复上述线索也会很好。

提前谢谢你<3

编辑1:

由于@jivko 的评论,现在我有了一些正确的代码:
ActiveSheet.Range("A1").Select
ActiveSheet.PasteSpecial Format:="Unicode Text", Link:=False, DisplayAsIcon:=False

由于我正在粘贴具有不同列数的不同来源的代码,我想知道在粘贴之前我怎么知道剪贴板中有多少列,以便我可以事先应用适当的格式?

一个想法是 Paste > Count the columns > Apply the correct Format > Paste again .这听起来并不完美,但它应该可以完成工作。

如果您有更好的解决方案,请随时分享 <3

最佳答案

我使用宏来粘贴我的数据,并在开头附近插入了这段代码。它可以防止双引号(在条目的开头)成为问题。
'本节通过指定 TextQualifier:=xlNone 来防止任何特殊字符干扰粘贴:

Range("A1").Select
ActiveCell.FormulaR1C1 = "abc"
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlNone, ConsecutiveDelimiter:=False, Tab:=True, Semicolon _
:=False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, _
1), TrailingMinusNumbers:=True
Range("A1").Select
Selection.ClearContents
'结束部分

关于vba - Excel VBA : Paste clipboard data (external source) with the appropriate cell data type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44019711/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com