我不知道如何将我的问题表达成一个简单的问题,对不起!
我有一个电子表格,格式不正确,不适合我需要做的事情。

如你所见,每一行是一种鱼,而列是一个独特的横断面,由(a)年,(b)地点,(c)珊瑚礁带和最后(d)重复数组成。重叠上的数字是该物种在该特定样带中被记录的次数。
我想要做的是生成一个新的表格,其中原始电子表格上的每条鱼的记录都是一整行。这将给出一个电子表格,其中记录的每条鱼现在都有自己的线,它看起来像这样:

除了基本的Excel之外,我几乎不了解任何其他东西,所以对此提供任何帮助都将不胜感激!
发布于 2019-11-10 05:47:29
根据您的数据集有多大,可能不需要代码。看起来你可以快速填充大多数列,然后在你特定的横截面和物种中排序和粘贴。如果您觉得仍然需要代码,那么一个简单的For Next循环就足以编写所需的唯一值。
即:
For i = 2 to LastRow
If
'code
Then
Next i发布于 2019-11-13 04:38:12
Const startRow As Integer = 5
Const newSheet As String = "TransposedData"
Sub makeDownwards()
Dim row As Integer, ws As Worksheet, ows As Worksheet
Dim oRow As Integer, col As Integer, repNumber As Integer, i As Integer
Dim fName As String, sName As String, year As String, site As String, none As String, transect As String
row = startRow
Set ws = ActiveSheet
Set ows = ThisWorkbook.Worksheets.Add(after:=ActiveSheet)
ows.Name = newSheet
oRow = 2
ows.Range("A1").Resize(1, 6) = Split("Fish Name ,Fish Spicies ,Year ,Site ,None ,Transect", ",")
ows.Range("A1:F1").Font.Bold = True
ows.Range("A1:F1").BorderAround xlContinuous, xlThin
ows.Range("A1:F1").HorizontalAlignment = xlCenter
Do While (ws.Cells(row, 1) <> "")
row = row + 1
col = 3
fName = ws.Cells(row, 1)
sName = ws.Cells(row, 2)
Do While ws.Cells(1, col) <> ""
repNumber = ws.Cells(row, col).Value
year = ws.Cells(1, col)
side = ws.Cells(2, col)
none = ws.Cells(3, col)
transect = ws.Cells(4, col)
For i = 1 To repNumber
ows.Range("A" & oRow).Resize(1, 6) = Array(fName, sName, year, side, none, transect)
oRow = oRow + 1
Next
col = col + 1
Loop
Loop
End Subhttps://stackoverflow.com/questions/58783220
复制相似问题