gpt4 book ai didi

vba - 如何使用VBA修剪字符串中未使用的逗号

转载 作者:行者123 更新时间:2023-12-03 01:00:58 26 4
gpt4 key购买 nike

我正在为 Excel 工作表上的命令按钮编写代码,该代码将从输入表中获取数据并将其传输到不同的工作簿模板。

我有 6 个可能的输入部分(在一个部分中)x1-x6,用户可以将数据放入其中。当我点击命令按钮时,我希望将其复制然后粘贴到另一张纸上的指定单元格中,来自这 6 个输入的数据(如果有的话)。

这就是我的问题所在:我已经弄清楚了复制和粘贴的事情以及连接部分,但我无法弄清楚的是,如果用户只输入 x1 和 x2 和,如何删除多余的逗号将其余部分留空。

基本上,我试图从行尾修剪逗号并停在第一个非逗号字符处,这有意义吗?我将放入代码和示例输出以提供帮助

Private Sub CommandButton1_Click()
Dim x1, x2, x3, x4, x5, x6, X As String
Dim HData As Worksheet
Dim Sdata as Workbook

Worksheets("Information").select
x1 = Range("B1").Value
x2 = Range("B2").Value
x3 = Range("B3").Value
x4 = Range("B4").Value
x5 = Range("B5").Value
x6 = Range("B6").Value
X = x1 + ", " & x2 + ", " & x3 + ", " & x4 + ", " & x5 + ", " & x6

'lots of code between here and the next part'

.Offset(1,1) = X

OUTPUT sample1, sample2, , , , <-- 如果这些单元格的输入部分中没有输入数据,我不希望显示这些逗号(或者如果没有任何数据,则根本不显示逗号)已输入)...

最佳答案

试试这个(更新范围内丢失的单元格):

Private Sub CommandButton1_Click()
Dim X As String, HData As Worksheet, Sdata As Workbook
Worksheets("Information").Select
X = Join(Application.Transpose(Range("B1:B6")), " ")
X = Replace(Trim(X), " ", ",")
Do Until InStr(1, X, ",,") = 0
X = Replace(X, ",,", ",")
Loop
'lots of code between here and the next part'

.Offset(1, 1) = X

假设范围内没有空格,如果有回发,我们可以解决它。

它是如何工作的:获取范围(这是一个数组/一组值)并将其直接填充到一个字符串中,并用空格连接每个元素

修剪字符串,即删除前面和结尾的空格

用逗号替换所有剩余空格

这就是为什么如果您的数据已经有空格,我们将不得不再添加几行,这很简单。

我喜欢这种方法,因为不涉及循环。

关于vba - 如何使用VBA修剪字符串中未使用的逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29760652/

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