我正在使用许多Excel文件。第一列用标题 CD newCD = new CD();
int line = 0;
for(String string : this.ourDB) {
if(line == ARTIST) {
newCD.setArtist(string);
System.out.println(string);
line++;
} else if(line == YEAR_AND_ALBUM_NAME){
String[] elements = string.split(" ");
String[] albumNameArr = Arrays.copyOfRange(elements, 1, elements.length);
String year = elements[0];
String albumName = join(albumNameArr, " ");
newCD.setYear(year);
newCD.setAlbumName(albumName);
System.out.println(year);
System.out.println(albumName);
line++;
} else if(line >= SONGS && !string.equals("")) {
newCD.setSong(string);
System.out.println(string);
line++;
} else if(string.isEmpty()){
line = 0;
}
}
固定。另一列名称为product-name
。
我正在尝试合并这两列之间的列,每个文件在这两列之间包含不同数量的列price
我在编写宏来运行每个Excel文件时遇到问题,有人能给我看一个例子吗?
答案 0 :(得分:1)
我假设只需要检查第一行。假设这些是标题。
您可以使用以下VBA检查列标题并合并列
我使用过随机变量,你可能会相应改变。
Sub test()
Cells(1, 1).Select
j = 1
Do
k = Cells(1, j).Value
Cells(1, j).Select
j = j + 1
Loop Until (k = "Product-name")
c1 = j
Do
k = Cells(1, j).Value
Cells(1, j).Select
j = j + 1
Loop Until (k = "Price")
c2 = j - 2
If (c2 > c1) Then
Range(Columns(c1), Columns(c2)).Select
Selection.Merge
End If
End Sub
k变量将存储列值,并将与“Product-name
”和“Price
”进行比较。
c1将存储“Product-name
”的下一列编号
c2将存储“Price
”-1的列号,在逻辑中它前进2,因此用2减去列号。
现在两个标题之间都有列号。
这里有一个需要考虑的小方案,如果没有列或者这两列之间至少有一列,那么直接就不能合并列。所以列值的额外比较。
我希望这可以回答您的问题。代码经过测试,工作正常。